我使用的是Python 3.9.16。当我尝试构建这样的应用程序时:
(base) G:\>pyinstaller --onefile grp.py
我收到一条错误消息:
The 'pathlib' package is an obsolete backport of a standard library package and is incompatible with PyInstaller. Please remove this package (located in C:\Users\alpha\anaconda3\lib\site-packages) using conda remove then try again.
我尝试卸载并重新安装 pyinstaller,以及升级 conda,但这些都没有帮助。
我该如何解决这个问题?
尝试将 pyInstaller 降级到 5.1(从 5.8)。那么就不需要删除pathlib了。
如果
conda remove pathlib
找不到该软件包,请转到lib
文件夹并删除名为path-list-....
的文件夹。
如果
conda remove pathlib
不起作用,请尝试使用 pip uninstall pathlib
删除软件包。
尝试在新的
Environment
中工作。在 Anaconda 的默认环境[base(root)] 中工作可能会导致一些恼人的错误,尤其是兼容性问题,因为它默认安装了相当多的软件包。新环境可以通过不包含这些包来避免这些问题。
创建一个新的 Conda 环境并使用该环境代替基本环境。新环境不会安装pathlib,这就解决了问题。
我过去使用过 py2exe,并且对我很有帮助,因为问题是“如何将 .py 转换为 .exe”(释义)。
签出https://pypi.org/project/py2exe/ 请参阅教程 https://www.py2exe.org/index.cgi/Tutorial
尝试使用
conda remove pathlib
删除 Pathlib。之后,import pathlib
等应该仍然可以工作,并且 Pathlib 在 Anaconda 环境中应该仍然可用:
您收到的错误消息表明您的 Anaconda 环境中安装的“pathlib”软件包导致与 PyInstaller 的兼容性问题。因此,PyInstaller 无法从您的 Python 脚本创建独立的可执行文件。
pip install pyinstaller==5.1 对我有用