pyinstaller打包exe文件后,exe运行报错找不到xx模块

环境

1.操作系统:window10
2.IDE: pycharm
3.pyinstaller版本:4.5
4python版本:3.7

报错现象

1.我这里的第三方模块使用的eventlet和dns,在pycharm中运行py程序,程序正常运行;

2.使用pyinstaller -F 打包成test.exe文件,在命令行中输入 .\test.exe发现程序报第三方模块无法找到

失败的方法

1.按照网上的方法在pyinstaller -F 中加入-p “第三方库绝对路径”,运行依然报错根本不起作用。

2.按照报错信息逐步添加每一个缺失的模块,此方法可以解决问题但是很傻,尤其是第三方库关联其它库的时候,能把你恶心死。

成功的方法

打开pyinstaller的目录,在hooks目录下创建文件,文件名一定是hook-第三方库.py,比如我用的eventlet库,我就需要创建hook-eventlet.py。
在该文件中添加如下代码:

from PyInstaller.utils.hooks import collect_all

datas, binaries, hiddenimports =collect_all('eventlet') #collect_all的参数一定也是第三方库名,不要写错。

然后在用pyinstaller -F 打包exe,运行就不会报错。

PS:此方法暂时没有在Linux上尝试

  • 14
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值