我正在使用pyinstaller(v3.2.1)来构建一个--onefile windows exe。我在我的python(v3.5.3)脚本中使用多处理。我已经为windows实现了下面提到的解决方法。
逻辑上,我的python脚本不会跨越多个进程,除非满足必需/条件并且按预期工作。我遇到的问题是,无论何时涉及多个进程,一切似乎都很好。 但万一,如果没有多进程处理,下面的“致命:无法执行脚本”对话框会闪烁几秒或更长时间,然后消失仍然会返回预期的结果。
是否有任何我遗漏的导致致命错误对话框出现并消失的内容?我怀疑multiprocessing.freeze()
之后的if __name__ == __main__ :
语句可能会在未创建新进程时导致问题!
答案 0 :(得分:1)
我遇到了类似的问题,并通过运行不带“ -windowed”前缀的compile命令并使用命令行启动exe文件来解决了该问题。它允许查看错误在哪里。脚本所指的是不存在的文件。 当我的一切正常时,错误在另一台计算机上弹出。 (因为硬编码文件就位)
答案 1 :(得分:1)
我遇到了同样的问题,并遵循Eugene Chabanov的建议,即使用pyinstaller yourapp.py
而不带任何特殊字符的pyinstaller,当exe准备就绪时,我使用Windows CMD将其打开,但由于错误而卡在了CMD中:< / p>
ModuleNotFoundError: No module named 'babel.numbers'
然后我这次pyinstaller -F --hidden-import "babel.numbers" test.py
再次运行pyinstaller,它的运行效果很好。
尝试查看遇到的错误,如果它是“ ModuleNotFoundError”,则只需运行pyinstaller并添加--hidden-import "missing_module_name"
。
希望对您有帮助。
这些人应该为我提供帮助:
答案 2 :(得分:1)
在与这个问题进行了激烈的斗争之后,我发现我的模块安装在我的IDE中,而不是实际的python运行环境中。当我在IDE中运行时,这导致一切正常运行,但是当我运行.exe时,它无法引用模块。为了解决这个问题,我在cmd行中打开了.py文件所在的目录,然后简单地将依赖项重新安装在那里,一切正常。我希望这对您有用,因为我连续数天不停地在网上寻找解决方案。
答案 3 :(得分:0)
此错误通常与从目录中请求某些数据的脚本相关联,并且该目录不会内置到exe中。
如果您的脚本有某种地方的数据,请确保源文件夹中的数据文件也在冻结的应用程序中。
要将数据文件添加到冻结的应用中,请参阅http://pyinstaller.readthedocs.io/en/latest/spec-files.html#adding-files-to-the-bundle
答案 4 :(得分:0)
尝试以管理员身份运行。我遇到了同样的问题,因为我想在&#34; Program Files&#34;创建一些文件。
答案 5 :(得分:0)
经过长时间的研究,我发现我的代码有两个问题:
通过在终端中键入 YourProgramName.exe(确保您在正确的目录中),我能够进行故障排除(有时显示错误有时不显示)。然后它会显示什么不起作用。
答案 6 :(得分:0)
我在尝试将 .py 文件转换为 .exe 时遇到了同样的错误。
就我而言,问题是我在脚本中导入了一个未被其余代码使用的库。 奇怪的是,VS 并没有抱怨这个库完全没用的事实。
作为一个简单的第一步,我建议:检查您的脚本并删除所有冗余。