Windows PyCharm 采用虚拟环境打包可执行文件 修复报错ModuleNotFoundError: No module named 'xxx'

Windows PyCharm 采用虚拟环境打包可执行文件

Windos Pycharm 打包可执行文件的方式,网上有很多人分享了,推荐一篇详细的文章:
Pycharm Windows 打包可执行程序
这篇文章详细介绍了PyCharm打包exe文件的配置,这里仅在此作为补充,建议看过上边的文章后,再来看这篇文章会比较清晰,上篇文章按照配置下来,是默认python 编译、打包的环境为全局环境。
但是实际项目中,需要针对每个项目采用虚拟环境的方式安装依赖,这种安装方式有如下好处:

  1. 可以与全局环境分隔,灵活规划依赖包
  2. 避免pyinstaller打包后的exe文件过大,仅打包虚拟环境中的依赖包,而非全局

当我们采用虚拟环境创建项目时候,项目的设置如下:

image.png

创建成功项目后,可以直接安装依赖包在虚拟环境中,

image.png

我们可以直接通过PyCharm 在虚拟环境中安装依赖包,通过菜单栏 文件->设置->项目->Python解释器->增加。
此时的依赖包在虚拟环境中,位置在<项目文件夹>\env 下。

然后我们在虚拟环境中安装pyinstaller。

image.png

接下来我们配置,外部工具用来做简易的打包环境:

image.png

可以看到我们配置的参数有些不同,这里我先复制下来命令,方便大家直接拷贝:

$PyInterpreterDirectory$\pyinstaller.exe

PyInterpreterDirectory:这个变量的意思就是虚拟环境下的脚本目录,我们安装的pyinstaller就在这里,即
<项目文件夹>\env\Scripts\pyinstaller.exe

这个时候运行外部工具应该就可以正常打包为exe了,所用的环境时虚拟环境中的依赖。

当我们使用虚拟环境打包遇到报错ModuleNotFoundError: No module named 'xxx'错误的时候,有一种情况,即pyinstaller.exe是引用的全局的,此时pyinstaller.exe会查找全局依赖包打入exe,但是我们的依赖包是安装在虚拟环境中,那此时肯定会报找不到的错误。 我们可以把全局的pyinstaller.exe删除,然后仅使用虚拟环境的pyinstaller.exe打包程序。
当然我们不使用外部工具的情况下,也可以直接在虚拟终端运行打包命令:

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容