pyinstaller no module named ‘pkg_resources.py2_warn‘解决方法

在用pyinstaller打包python编写好的程序时,遇到了一些问题,其中有一个是no module named 'pkg_resources.py2_warn’
在这里插入图片描述
经过一些探索后,找到了解决方法:
1.先用pyinstaller -D(F) xxx.py生成一下(不一定能正常运行)
2.(关键)经过第一步之后,目录下有个.spec文件,用记事本打开,里面有个hiddenimports,在这条里面加上pkg_resources.py2_warn
在这里插入图片描述
3.再次用pyinstaller,注意这时候输入的命令是pyinstaller -D(F) xxx.spec
4.经过步骤2就可以解决这个问题,若仍然提示no module named XXXXX ,则再次写入到hiddenimports
5.需要经过几次调试,建议先用-D处理没问题之后再-F。

经过网上查询还有另一种解决方法:
1.pip uninstaller setuptools
2.pip installer setuptools==44.0.0
(不过这种方法对setuptools进行降级处理,可能有些功能不能使用)

经过这两种方法,程序可以正常运行。

2021年3月更新:
经过又一阵时间测试,发现在新版本中pyinstaller已经修复了这个问题,故不需要再设置参数。另外推荐给大家配置python的一个好的方法是Anaconda,使用Anaconda可以配置好python的环境,并且可以创建多个python环境,还可以自由切换。
现在不推荐大家使用pip installer setuptools==44.0.0 ,直接全部使用最新版本即可。
我推荐大家使用pyinstaller -D,这种方式的稳定性更好
另外如果打包后文件在其他系统运行出现了错误,可以参考我的一个解决方法
pyinstaller生成的exe文件在其他电脑打不开的解决方法