Windows PyCharm 采用虚拟环境打包可执行文件
Windos Pycharm 打包可执行文件的方式,网上有很多人分享了,推荐一篇详细的文章:
Pycharm Windows 打包可执行程序
这篇文章详细介绍了PyCharm打包exe文件的配置,这里仅在此作为补充,建议看过上边的文章后,再来看这篇文章会比较清晰,上篇文章按照配置下来,是默认python 编译、打包的环境为全局环境。
但是实际项目中,需要针对每个项目采用虚拟环境的方式安装依赖,这种安装方式有如下好处:
- 可以与全局环境分隔,灵活规划依赖包
- 避免pyinstaller打包后的exe文件过大,仅打包虚拟环境中的依赖包,而非全局
当我们采用虚拟环境创建项目时候,项目的设置如下:
创建成功项目后,可以直接安装依赖包在虚拟环境中,
我们可以直接通过PyCharm 在虚拟环境中安装依赖包,通过菜单栏 文件->设置->项目->Python解释器->增加。
此时的依赖包在虚拟环境中,位置在<项目文件夹>\env 下。
然后我们在虚拟环境中安装pyinstaller。
接下来我们配置,外部工具用来做简易的打包环境:
可以看到我们配置的参数有些不同,这里我先复制下来命令,方便大家直接拷贝:
$PyInterpreterDirectory$\pyinstaller.exe
PyInterpreterDirectory:这个变量的意思就是虚拟环境下的脚本目录,我们安装的pyinstaller就在这里,即
<项目文件夹>\env\Scripts\pyinstaller.exe
这个时候运行外部工具应该就可以正常打包为exe了,所用的环境时虚拟环境中的依赖。
当我们使用虚拟环境打包遇到报错ModuleNotFoundError: No module named 'xxx'
错误的时候,有一种情况,即pyinstaller.exe是引用的全局的,此时pyinstaller.exe会查找全局依赖包打入exe,但是我们的依赖包是安装在虚拟环境中,那此时肯定会报找不到的错误。 我们可以把全局的pyinstaller.exe删除,然后仅使用虚拟环境的pyinstaller.exe打包程序。
当然我们不使用外部工具的情况下,也可以直接在虚拟终端运行打包命令: