pyinstaller 生成的 exe 文件执行有问题

Posted

技术标签:

【中文标题】pyinstaller 生成的 exe 文件执行有问题【英文标题】:exe file made by pyinstaller has problem executing 【发布时间】:2021-06-22 10:00:51 【问题描述】:

这里是python脚本:

我使用 Visual Studio Code 通过以下命令运行文件:

我得到了想要的结果:

现在我尝试通过在我的脚本所在的文件夹中打开 PowerShell 来创建 .exe 文件,并且 运行下一行:

这是我得到的东西(不包括 otherScripts 文件夹):

现在我打开 CMD,导航到所需的文件夹,然后使用下一行代码运行 .exe 文件:

这是我收到的第一个警告:

这是我作为 Traceback 得到的(控制台立即关闭,我无法使用截图工具来捕获错误,所以我通过 C# Win Form 应用程序运行它并将标准错误重定向到表单中的标签) :

我试过了:

    pip 安装变压器 -U。 代替--onefile,使用命令--onedir 脚本中的第 3 行(导入 tqdm)最近被添加以尝试修复错误。因为它说“tqdm 没有找到,是应用程序需要的”,所以我就放在那里了。 将 pyinstaller 和转换器更新到最新版本。 其他我现在不记得了。

这些都不起作用。我有点卡在这里。 对于解决此问题的任何帮助,我将不胜感激。

【问题讨论】:

【参考方案1】:

尝试使用--exclude-module=torch构建?(取自:https://github.com/pyinstaller/pyinstaller/issues/4695)

【讨论】:

您好,感谢您的回复。这只修复了警告:“文件已经存在,但不应该存在。” Traceback(最近一次通话最后一次)之后,一切都一样。 您是如何安装 TDQM 的?使用 pip 还是 Python? 我想我是用 pip 安装的。我刚刚在cmd中尝试过,我写道:pip install tdqm,它说要求得到满足:tqdm in C:\... 尝试使用python -m pip install tqdm ,然后使用python -c 'import tqdm'(取自:github.com/tqdm/tqdm/issues/497) 在第一行:python -m pip install tqdm,我得到一个回复​​,Requirement already meet: tqdm in c:\... 第二行:python -c 'import tqdm' ,我得到一个重播:文件“”,第 1 行'import SyntaxError:EOL,同时扫描字符串文字。我很确定我是按照你写的方式输入的:python -c 'import tqdm'【参考方案2】:

对我来说,将“tqdm 目录”添加到数据解决了这个问题 :)

脚本.spec:

datas=[
('C:\\<...>\\Lib\\site-packages\\tqdm', 'tqdm\\'),
('C:\\<...>\\Lib\\site-packages\\tqdm-4.50.2.dist-info', 'tqdm-4.50.2.dist-info\\'),
...],

【讨论】:

啊,问题才刚刚开始! ...不得不以这种方式添加大约 10 - 15 个包... 好吧。我实际上是使用其他一些 python 库让它工作的。我有点浪费了很多时间试图修复我不太了解的东西。所以我只是使用了另一种解决方案进行总结。 使用的库是 gensim。 我正在使用转换器进行翻译 (MarianMT) :)

以上是关于pyinstaller 生成的 exe 文件执行有问题的主要内容,如果未能解决你的问题,请参考以下文章

pyinstaller 模块-python文件生成exe可执行文件

使用pyinstaller打包Python应用,生成EXE执行文件

pyinstaller打包生成的exe文件并使用python终止后台的exe程序运行

有没有办法创建从 pyinstaller --onefile 生成的单个可执行 exe 文件的 MSI 包?

Python—脚本程序生成exe可执行程序(pyinstaller)

python利用pyinstaller打包生成exe