脚本.py文件转.exe文件遇见的问题,打开exe文件出现弹窗: No module named ‘xxx‘

1 问题

今天做了一个使用Python写的脚本文件.py,打算把它转换成.exe文件。点击生成的exe文件时,出现了如下弹窗。
请添加图片描述

2 问题分析

根据错误描述:

Failed to execute script 'version03’due to unhandled exception:No module named ‘PIL’
以及
Traceback(most recent call last):
File “version03.py”,line 3,in
ModuleNotFoundError:No module named ‘PIL’

都在说明,生成的exe文件里缺失了PIL库。

3 解决过程

3.1 确保Pillow库存在

检查自己虚拟环境中是否有Pillow库
打开Anaconda,进入项目所依赖的虚拟环境,列出列表检查Pillow库是否存在

activate virtualName
pip list

显然,库是存在于项目所处的虚拟环境中的
在这里插入图片描述
这期间,我还把脚本发给我的同门帮我生成exe文件,发现他生成的文件并没有出现问题,可以直接执行。

关于Pillow的下载、卸载和更新可以参考这个博主的文章:
报错:ModuleNotFoundError: No module named 'PIL’解决方法

3.2 迷惑阶段

我把涉及的库文件能更新到最新版本的,都更新到最新版本。考虑到我生成了GUI界面,我使用的是thinter库,还有PyQt库等等。于是又把之前版本中使用PyQt库的脚本转换为exe文件,再次点开,发现此时显示的是:缺失PyQt库

此时,我认为一定是什么地方忽略了,导致依赖库没有添加到可执行文件中去。直到我看到了这篇文章
PyQT5打包:用PyInstaller完美打包exe

文章提到:PyInstaller库pandas库分别在全局环境虚拟环境当中,使用PyInstaller打包时,只能在PyInstaller所以处的环境(全局环境)中去寻找程序中import的包。

按照他的办法:

3.3 解决问题

首先:win+r,打开cmd
输入:pip list查看全局环境包含的库文件
在这里插入图片描述

显然,全局环境中没有Pillow库

接下来就简单了,按照大部分常用的办法下载Pillow库

pip install Pillow

然后回到Pycharm的终端中,再次输入py转换exe的命令

pyinstaller --onefile --windowed yourFileName.py

在这里插入图片描述

回车,再次点击生成的exe文件。

在我的这个脚本中,除了Pillow库,还缺失了另一个库。然后再把另一个库也下载到全局环境中就好了。

就可以正常运行了!!!!

4 希望大佬解答

为什么我的虚拟环境中含有程序所需要的所有库,以及转换成exe文件的PyInstaller库,但不能再虚拟环境中转换呢?而要在全局环境中下载相关需要的import库?

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值