如何在Anaconda环境中使用PyInstaller打包Python3.6应用?
解决PyInstaller无法识别Anaconda环境依赖的问题
你遇到的核心问题是:直接运行pyinstaller时,终端默认调用了系统全局的Python环境,而非你开发用的Anaconda虚拟环境——这就是它找不到已安装在Anaconda环境里的youtube_dl包的原因。下面是具体的解决步骤:
第一步:激活你的Anaconda虚拟环境
打开终端切换到项目目录,然后激活你创建的Anaconda环境(把下面的your_env_name替换成你实际的环境名称):conda activate your_env_name激活成功后,终端提示符前会显示你的环境名称,此时终端里的Python、pip等工具都会指向这个环境的版本。
第二步:在激活的环境中安装PyInstaller
很多人会忽略这一步:如果系统全局环境装了PyInstaller,但虚拟环境里没装,即使激活了环境,运行pyinstaller还是会调用全局版本。所以在激活环境后执行:pip install pyinstaller确保PyInstaller被安装到当前的Anaconda环境中。
第三步:执行打包命令
现在在激活的环境里,直接运行你的打包命令:pyinstaller Main.py此时PyInstaller会使用当前Anaconda环境的Python解释器,自然就能找到已安装的
youtube_dl包了。
如果不想每次都激活环境,你也可以直接指定Anaconda环境中PyInstaller的绝对路径来执行打包。比如你的环境路径是/Users/你的用户名/anaconda3/envs/your_env_name/bin/pyinstaller,直接运行:
/Users/你的用户名/anaconda3/envs/your_env_name/bin/pyinstaller Main.py
这种方式也能让PyInstaller使用目标环境的依赖。
内容的提问来源于stack exchange,提问作者Gonzalo




