Pyinstaller No module named pk
更新:HHH   时间:2023-1-7


Pyinstaller编译出的exe文件运行后出现

ModuleNotFoundError: No module named 'pkg_resources.py2_warn'
[1688] Failed to execute script pyi_rth_pkgres

编译代码中未引用pkg_resources。

网上先搜索了一番,有尝试过pip install distribute 失败。有尝试过降低pyinstaller版本,PyQt5版本,opencv版本等均失败。

重新写一个test.py如下
print('Hello Python!')
结果,正常输出exe并打印出 Hello Python!似乎看到一点希望。

from PyQt5 import QtCore, QtGui, QtWidgets
print('Hello Python!')
正常输出exe并打印出 Hello Python!

继续
import cv2
print('Hello Python!')
输出同上的 Failed to execute script pyi_rth_pkgres。看来有部分依赖的库会导致此问题

用pyinstaller -d all test.py(debug all)模式看详细输出,还是在pkg_resources.py2_warn

之后,在有针对性的查找pkg_resources.py2_warn ,原来在setuptools里有pkg_resources模块

再降setuptools版本后,可以正常运行了。

最后,给出笔者Python配置环境的版本。供大家参考
win10_64位 + python 3.6.8_64位 + Pywin32 227 + PyQt5 5.14.1 + opencv-python 3.4.5.20 + setuptools 44.0.0 + PyInstaller 3.6
win10_32位 + python 3.5.4_32位 + Pywin32 227 + PyQt5 5.14.1 + opencv-python 3.4.5.20 + setuptools 44.0.0 + PyInstaller 3.6
以上配置环境python包官网下载,模块均pip install自动安装依赖

返回编程语言教程...