Pyinstaller错误 - "找不到setuptools发行版"

时间:2016-05-25 05:38:34

标签: python pyinstaller

尝试使用Pyinstaller为我的python项目构建可执行二进制文件。

环境详情:

Python - 2.7.6,pip - 6.1.1,setuptools - 21.2.1

我能够成功构建项目。

rpmbuild -ta tarball;

而当我执行二进制文件时,它会抛出错误消息。

pyinstaller heatstackapp.py
......
......
83093 INFO: checking COLLECT
83093 INFO: Building COLLECT because out00-COLLECT.toc is non existent
83094 INFO: Building COLLECT out00-COLLECT.toc
jayaprakash@cloudenablers:/opt/core/heatstack/heatstack$

任何帮助都会非常明显。提前致谢。

1 个答案:

答案 0 :(得分:1)

这是由于PyInstaller最终.exe文件中未包含软件包或文件集。当PyInstaller无法自动检测所需的模块或不是脚本的额外数据文件(因此不属于导入和依赖项链的一部分)时,就会发生这种情况。

我无法从提供的信息中了解更多信息,但可以给出一些一般步骤。


更新.spec文件并在其上运行PyInstaller,而不是您的.py文件。

.py文件上运行PyInstaller时,将首先创建一个.spec文件,然后PyInstaller将从.exe文件中生成.spec

运行一次PyInstaller后,您可以手动编辑.spec文件以包含其他“隐藏”导入,以及直接PyInstaller在其上找不到的资源/数据文件(例如图像,元数据文件等)。自己的。

手动更新.spec文件后,请勿在{{1​​}}文件上运行PyInstaller。而是直接在.py文件上运行它,它将使用您手动指定的额外资源来构建.spec

另请参阅this answer on a utility bundled with PyInstaller that can make a .spec file for different cases

将数据文件添加到.exe文件中

在规范文件中,有一个.spec行,可以用非常特定的格式进行更新,以包括单个文件或整个文件夹及其内容。

隐藏的进口商品

如果PyInstaller缺少某些需要的导入(通常是因为特定的软件包正在使用某种隐式,非标准的方法来管理其一个或多个依赖项),则可以告诉datas =文件中的PyInstaller包括它无论如何。

请参见PyInstaller Docs on Hidden Imports