没有名为 pkg_resources.py2_warn pyinstaller 的模块

Nag*_*S N 16 python exe pyinstaller python-3.x

我正在尝试为此处.exe代码制作一个可执行文件(Windows 文件)。要运行的主要文件是src/GUI.py. 我发现 pyinstaller 是创建 exe 文件的更好选择。

我尝试了一个文件夹和单个可执行文件选项。我尝试从根目录和目录中创建 exe src

pyinstaller src/GUI.py
pyinstaller src/GUI.py -F
cd src
pyinstaller GUI.py
pyinstaller GUI.py -F
Run Code Online (Sandbox Code Playgroud)

GUI.exe使用上述所有方法创建。但是每当我尝试运行该GUI.exe文件时,都会出现错误no module named pkg_resources.py2_warn pyinstaller。我尝试GUI.exedist创建它的目录、根目录和src目录中运行。在任何地方,我都会遇到同样的错误。我怎样才能解决这个问题?

PS:理想情况下,我想要一个 .exe可以分发的文件,他们可以独立运行它,而无需安装依赖项或重新创建文件夹结构。但是我知道 pyinstaller 只打包代码文件,我必须单独共享图像,并且在运行 exe 文件时,必须重新创建相同的结构。我也没关系。我什至可以共享一个文件夹 exe。我只想共享一个文件或文件夹,用户无需安装任何依赖项即可运行。有可能吗?

PPS:我也愿意使用 pyinstaller 以外的工具。

rfi*_*fii 21

自 2020 年 7 月 16 日起,升级setuptools 现在可以解决此错误。不再需要像其他答案规定的那样降级设置工具。看到这个讨论

在Win10上,升级

pip3 install setuptools --upgrade
Run Code Online (Sandbox Code Playgroud)

然而,正如 Vikramaditya 所说,降级到 45.0.0 版以下也可以。

  • 尝试使用“--onefile”进行编译时,我仍然收到“25416 警告:隐藏导入“pkg_resources.py2_warn”未找到!”和“25673 警告:隐藏导入“pkg_resources.markers”未找到!” (3认同)

Vik*_*kar 9

这是一个问题,setuptools如this github ticket 中所述。考虑setuptools使用以下命令将您的系统降级到 44.0 或以下

pip install --upgrade 'setuptools<45.0.0'
Run Code Online (Sandbox Code Playgroud)

  • 寻找@rfii 的答案。这才是“正确”的事情 (2认同)

pul*_*eth 8

使用PyInstaller --hidden-import=pkg_resources.py2_warn my_script.py来解决这个问题。这同样适用于大多数ModuleNotFoundErrors。

该隐藏模块是在 setuptools 版本中添加45.0.0并删除的,49.0.0因此无论是在下面降级还是在上面升级也将修复它。

请不要import pkg_resources.py2_warn像其他人那样通过将代码放在顶部来解决此问题,因为如果您将 setuptools 版本更改为超出上述范围,这显然会中断。

4.0一旦我们最终开始发布它,这个问题将在PyInstaller版本中永久修复。