繁体   English   中英

PyInstaller .exe 文件什么都不做

[英]PyInstaller .exe file does nothing

3天后,我无法将python程序打包成.exe文件。 我试过 py2exe(它不断错过模块)和 PyInstaller。

这是复杂的部分。 我的程序使用了许多额外安装的模块(coopr、pyomo、openpyxl、glpk、cbc、pyutilib、numpy 等)。 这些反过来又导入了各种其他东西,我无法追踪它(PyInstaller 警告日志列出了 676 行丢失或可能不需要的模块。)

但是,我得到了(通过将“缺失”模块的导入添加到我的程序中)一个 .exe 版本,它通过双击或从命令行运行,没有打印任何错误。

问题是,程序什么都不做。 我有一个包含在构建中的输入文件,我的程序读入该文件,进行一些(密集)计算,然后在同一目录中创建一个 .csv 输出文件。 它作为 .py 文件工作。 我的 .exe 什么也不做。

所以,如果你能告诉我出了什么问题,请继续。 如果没有,我想知道任何有用的步骤或想法可以尝试。 在这一点上,我已经用尽了可以从程序和文档中找到的反馈。

我只是为自己解决了这个问题。

确保您没有与您尝试转换为可执行文件的脚本同名的文件夹。

如果您已经有应用程序文件sample.py以及文件夹sample (例如包含您的其他 .py 文件)并且您希望应用程序保留名称sample ,您可以通过将sample.py重命名为sample_app.py来解决此问题sample_app.py然后使用 --name 选项调用 pyinstaller 例如, pyinstaller --onefile --name sample sample_app.py由 pyinstaller 创建的二进制文件将被称为sample

创建exe时,请确保python脚本包含

if __name__ == '__main__':
    main()

在底部。 否则,python exe 将运行,但由于它没有什么可运行的,它将结束。

我也无法使 pyinstaller 正常工作,但是几年前我找到了一个在 Windows 上生成 R 脚本可执行文件的解决方案,所以我用 python 尝试了它并且它起作用了!

这是解决方案,仅在 CMD 中的 3 行中:

https://github.com/jorgeavilacartes/making-my-own-executable-python

您可以创建自己的扩展并将其分配给您希望的 python.exe(如果您有很多 venv,您可以为每个扩展创建一个可执行扩展)

不幸的是,我只有 Windows 的解决方案。

希望能帮助到你!

PD:小心不要在创建可执行文件的同一文件夹中包含任何.ipynb ,它无法正常运行,我不知道为什么,但这是我遇到的唯一问题。

当在 windows 中双击 exe 无法运行时,关联的窗口也会自动关闭。 如果发生这种情况,请打开命令提示符并尝试通过转到适当的路径并输入文件名(例如C:\\github\\program\\dist\\main.py )来运行该 exe。 应用程序抛出的任何错误都将打印在命令提示符窗口中,而不会自动关闭。

如果您的脚本访问非 Python 文件,请移动可执行文件以便它可以找到它们。

我遇到了同样的问题。 对我来说,原因是我的一些 Python 文件需要访问非 Python 文件(在我的例子中是 gifs)。 PyInstaller 没有将资源与 Python 文件捆绑在一起,也没有将可执行文件与主 Python 文件放在同一目录中,因此当我的程序尝试访问它们时出现错误。 解决方案只是将资源复制到可执行文件正在寻找它们的位置,反之亦然。

出于某种原因,当我正常运行 PyInstaller 时,没有生成帮助我找到问题的错误消息。 它们仅在使用--onefile标志时生成,即便如此,它们在提示关闭前只停留了不到半秒。 当消息出现时,我不得不使用ctrl + prt来捕获我的屏幕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM