【问题标题】:File generated by Pyinstaller does not workPyinstaller 生成的文件不起作用
【发布时间】:2019-12-17 00:42:17
【问题描述】:

当我在 windows 10 bash shell 中的 python 代码文件上使用此命令时:

 pyinstaller Test.py

它会生成这些文件(以及其他一些文件):

我不确定生成的文件是否是 .exe 文件并且可以工作。我无法运行它。能否请你帮忙?谢谢。

【问题讨论】:

  • 你是在linux还是windows上运行?如果您在 linux 上运行,我想这样做:chmod +x Test 然后.\Test
  • 您可以尝试在cmd中运行它,这样您就可以在执行它的同时获得输出。程序可能会在您没有注意到的情况下遇到错误并退出。
  • 感谢您的 cmets。我需要一个 .exe 文件,单击它运行程序。这是专门为公司中的初学者提供便利的过程。他们不是打开shell并运行的专家!建议表示赞赏。
  • 是的,但如果cmd运行你的exe,那么你可能会看到一条错误消息,告诉你出了什么问题
  • 我不确定它是否是一个exe文件。问题很大!

标签: python exe


【解决方案1】:

当我看到你的屏幕截图时,你试图在Linux 操作系统上运行pyinstaller,因为生成的*.so 文件是Linux 指定的共享对象。此外,Test 文件是 Linux 指定的不带扩展名的可执行文件。

如果你想从你的 Python 文件/项目创建一个EXE 文件,你必须在Windows 操作系统上运行pyintallerpyinstaller 将收集所有需要的文件,例如:DLL、SDK 等...

我从PyInstaller官方文档中复制了以下部分:

PyInstaller 针对 Windows、Mac OS X 和 Linux 进行了测试。然而, 它不是交叉编译器:要制作 Windows 应用程序,您需要运行 PyInstaller 在 Windows 中;要制作一个 Linux 应用程序,你可以在 Linux 等中运行它。 PyInstaller 已在 AIX、Solaris 和 FreeBSD 中成功使用,但不是 对他们进行了测试。

一些提示如何从您的 Python 文件/项目创建一个有效的 EXE 文件。

使用--onefile-F 标志:

“在单文件模式下,不会调用 COLLECT,EXE 实例会接收所有脚本、模块和二进制文件。”例如:pyinstaller --onefile test.py

使用--windowed-w 标志:

Windows 和 Mac OS X:不为标准 i/o 提供控制台窗口。在 Mac OS X 上,这也会触发构建 OS X .app 包。此选项在 *NIX 系统中被忽略。

使用--clean 标志:

在构建之前清理PyInstaller缓存并删除临时文件。

我推荐的命令:

pyinstaller -Fw --clean test.py

您应该在Windows OS 上运行上述命令。

仅供参考:

如果您有一个复杂的 Python 项目并且您有依赖项(所需的文件、文件夹结构等...),我建议使用 *.spec 文件。您可以在以下链接中阅读有关它的详细信息:https://pythonhosted.org/PyInstaller/spec-files.html

【讨论】:

  • 感谢您的帮助。珍惜你的时间。 Pyinstaller 可以在 Windows Bash Shell 中运行。但是,它不能在 CMD 中运行,因为我收到此错误:“'pyinstaller' 不被识别为内部或外部命令、可运行程序或批处理文件。”。这很奇怪,因为我已经使用“pip install pyinstaller”安装了它。也许路径设置不正确?!
  • 你是对的。可能没有找到PyInstaller 的路径。首先是你正在使用Python3,你应该尝试以下命令来安装PyInstallerpip3 install pyinstaller。此外,您应该设置您的 PATH 环境变量以找到 PyInstaller 可执行文件,如以下答案:stackoverflow.com/a/45952113/11502612。在此答案中直接调用PyInstaller 的其他解决方案:stackoverflow.com/a/40117620/11502612。如果两种解决方案都不起作用,我建议在 Python 虚拟环境中进行。
  • 关于PyInstallerPython 虚拟环境中的帖子:stackoverflow.com/questions/48629486/…
  • 这个链接在使用 anaconda python 时真的很有帮助。 stackoverflow.com/questions/45951964/….......另外,我的最终解决方案:stackoverflow.com/questions/59524507/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-17
  • 2021-01-26
  • 2019-12-04
相关资源
最近更新 更多