繁体   English   中英

Pyinstaller - “致命错误! 使用 multiprocessing.freeze_support 时无法执行脚本”

[英]Pyinstaller - “Fatal error ! Failed to execute script” when using multiprocessing.freeze_support

我正在使用 pyinstaller(v3.2.1) 来构建一个 --onefile windows exe。 我在我的 python (v3.5.3) 脚本中使用多处理。 我已经为 Windows 实现了下面提到的解决方法。

配方多重处理

从逻辑上讲,除非满足要求/条件并且按预期工作,否则我的 python 脚本不会跨越多个进程。 我的问题是,每当涉及多个进程时,一切似乎都很好。 但是,如果不涉及多进程,下面的“致命:无法执行脚本”对话框会闪烁几秒钟或更长时间,然后消失,但仍返回预期结果。

在此处输入图片说明

我是否遗漏了什么导致致命错误对话框出现和消失? 我怀疑在if __name__ == __main__ :之后的multiprocessing.freeze()语句if __name__ == __main__ :可能会在未创建新进程时导致问题!

我遇到了同样的问题,并遵循了 Eugene Chabanov 的建议,即使用 pyinstaller 没有任何特殊字符,只是pyinstaller yourapp.py ,当 exe 准备好时,我使用 Windows CMD 打开它,它卡在 CMD 中并出现错误:

ModuleNotFoundError: No module named 'babel.numbers'

这次我再次运行 pyinstaller pyinstaller -F --hidden-import "babel.numbers" test.py并且它运行pyinstaller -F --hidden-import "babel.numbers" test.py漂亮。

试着看看你得到了什么错误,如果它是“ModuleNotFoundError”,那么只需运行 pyinstaller 添加--hidden-import "missing_module_name"

我希望它有帮助。

这些人因帮助我而值得称赞:

--hidden-import "missing_module_name" - 先生

无窗口运行 - Eugene Chabanov

我遇到了类似的问题,并通过运行没有-windowed前缀的编译命令然后使用命令行启动 exe 文件来解决它。 它允许查看错误在哪里。 脚本指的是一个不存在的文件。 错误在另一台计算机上弹出,而我的一切正常。 (因为硬编码文件就位)

此错误通常与从目录请求一些数据的脚本相关联,并且该目录未内置到 exe 中。

如果您的脚本有来自某处的某种数据,请确保源文件夹中的数据文件也在冻结的应用程序中。

要将数据文件添加到冻结的应用程序,请参阅http://pyinstaller.readthedocs.io/en/latest/spec-files.html#adding-files-to-the-bundle

在与这个问题进行了一场光荣的斗争后,我发现我的模块安装在我的 IDE 中,而不是我实际的 python 运行环境中。 这导致我在 IDE 中运行时一切正常,但是当我运行 .exe 时它无法引用模块。 为了解决这个问题,我打开了 .py 文件在我的 cmd 行中所在的目录,然后简单地在那里重新安装了我的依赖项,一切正常。 我希望这对你有用,因为我几天来一直在用头撞墙而没有在网上找到任何解决方案。

尝试以管理员身份运行。 我遇到了同样的问题,因为我想在“程序文件”中创建一些文件。

经过长时间的研究,我发现我的代码有两个问题:

  1. pynput 仅适用于 1.6.8 (pip install pynput==1.6.8) 请参阅 Sandeep 的回答
  2. 我的文件中有一个图标 iconbitmap(r'icon.ico')。 处理时未找到此图标文件。 我用以“C:....”开头的完整路径替换了它,并且它起作用了。

通过在终端中键入 YourProgramName.exe(确保您在正确的目录中),我能够进行故障排除(有时显示错误有时不显示)。 然后它显示什么不起作用。

我在尝试将 .py 文件转换为 .exe 时遇到了同样的错误。

就我而言,问题是我在脚本中导入了一个未被其余代码使用的库。 奇怪的是,VS 并没有抱怨这个库完全没用的事实。

因此,作为一个简单的第一步,我建议:检查您的脚本并删除任何冗余。

暂无
暂无

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

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