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 上