Pyinstaller 一切都在本地机器上运行,但在另一台机器上失败

Posted

技术标签:

【中文标题】Pyinstaller 一切都在本地机器上运行,但在另一台机器上失败【英文标题】:Pyinstaller everything works on local machine but fails on another 【发布时间】:2021-12-03 20:59:36 【问题描述】:

使用 Pyinstaller 构建我的应用程序后,.exe 文件在我的开发 PC(Windows 10 64 位)上运行没有问题。如果尝试在我的另一台 PC(也是 Windows 10 64 位)上运行该程序,我会收到错误消息:

.

我已经尝试过一个文件和文件夹选项。

我正在使用这个 Pyinstaller 命令:

pyinstaller --noconfirm --onedir --windowed --icon "C:/gui/exe/stopwatch.ico" --exclude-module _bootlocale "C:/gui/exe/rt50.py"

代码可以从这里下载:https://www.racetiming.dk/dev/rt50.py

我真的希望有人可以帮助我。

【问题讨论】:

尝试从命令提示符运行exe并检查错误。 这将需要我返回并使用 onefile 选项,因为我不想在“生产”PC 上安装 Python。我会尽快尝试并返回。 我建议您使用 autopy2exe,因为它们使附加 .ico 文件变得容易 我尝试制作一个文件版本并运行它 - 但它除了弹出消息之外没有其他错误:-( @chess_lover - 我曾尝试使用 auto-py-to-exe,但会产生新问题,甚至无法生成输出文件。 【参考方案1】:

您的应用正在尝试访问 "C:/gui/exe/stopwatch.ico"

root.iconbitmap("c:/gui/exe/stopwatch.ico")

它不会在没有此类文件的机器上运行。 一般来说,硬编码这样的路径无论如何都不是一个好主意。

最快的解决方法是删除该行,但不会有花哨的图标。

【讨论】:

我确实有(或希望有 :-))一个精美的图标 - 你能建议如何实现这个功能吗? 查看如何告诉 Pyinstaller 将该文件与您的程序一起打包,然后找出该文件的路径。 (我记得 Pyinstaller 打包程序中的 sys.meipass 之类的东西。) 我非常感谢您的帮助 - 但我需要的是对问题的解释并指导如何解决。也许有人有自己的开发平台,可以尝试构建.exe文件? 问题是 (a) 您使用的是图标文件的硬编码路径。这只有在使用安装应用程序的人将其放置在正确的位置时才有效。那很糟。 (b) 它是 PyInstaller 不自动包含的外部文件。 pyinstaller.readthedocs.io/en/stable/… 解释了如何添加这些外部文件以及如何在运行时使用它们。

以上是关于Pyinstaller 一切都在本地机器上运行,但在另一台机器上失败的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 机器人在本地工作,但不在 Heroku 上

Mandrill SMTP 超时

在 puma、rails、nginx 上设置 rails 应用程序一切都在运行,但 nginx 发送错误

音乐机器人不在 Heroku 上播放音乐,但在本地

pyinstaller打包在别的电脑上无法运行?

动作电缆在本地订阅,但不在 heroku 上