pyinstaller打包成功后提示ModuleNotFoundError: No module named ‘distutils‘错误解决办法

问题: pyinstaller打包好后运行的时候提示:ModuleNotFoundError: No module named ‘distutils’

​ 昨天使用pyinstaller打包好后运行的时候提示:ModuleNotFoundError: No module named 'distutils’的错误.

尝试了各种办法都没有解决这个问题,直到在github上看见了到了issue.

我查看了我自己的virtualenv的版本发现正是他介绍的这个版本.

在cmd中查看自己virtualenv的版本,输入如下命令

virtualenv --version

查看到我的virtualenv 16.4.0,是目前最新的版本

使用virtualenv 16.4.0,pyinstaller报告:

3583 INFO: distutils: retargeting to non-venv dir '/usr/lib64/python3.6/distutils/__init__.py'

然后在“加载模块挂钩”序列期间,hook-distutils.py缺少并且distutils模块不包含在最终的可执行二进制文件中。

执行二进制文件时,错误是:

ModuleNotFoundError: No module named 'distutils'
[10373] Failed to execute script <name here>

使用virtualenv 16.1.0,pyinstaller报告:

3157 INFO: Processing pre-find module path hook   distutils
5053 INFO: Loading module hook "hook-distutils.py"...

和distutils模块包含在最终的可执行二进制文件中。

分析了他们的解决方案,我正好报着 尝试一下的态度.马上去降级我的virtualenv的版本为 16.1.具体步骤:

  1. 先卸载virtualenv
pip uninstall virtualenv
  1. 重新安装版本为16.1的virtualenv,
pip install virtualenv==16.1  # 安装指定版本的virtualenv
  1. 安装完成后我在用原来的虚拟环境打包,发现依旧问题没有解决.于是乎我就把原来的虚拟环境全部给删除了.重新使用virtualenv命令新建了一个全新的虚拟环境
virtualenv --no-site-packages XXX  # xxx 是虚拟环境的名称
  1. 在把项目需要的包全部重新再找个虚拟环境中安装一遍:
pip install -r requirements.txt # requirements.txt是项目需要的包的文件

*注意: pip的使用请自行参考相关文档

  1. 在使用打包命令重新打包项目
pyinstaller -F run.py

这次打包成功后再运行,发现问题解决.

参考地址: https://github.com/pyinstaller/pyinstaller/issues/4064

个人经验总结.转载注明来源

作者:lizhonglin

github: https://github.com/Leezhonglin/

blog: https://leezhonglin.github.io/

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kujirashark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值