【问题标题】:ttkbootstrap not working with pyinstallerttkbootstrap 不适用于 pyinstaller
【发布时间】:2022-03-04 10:38:41
【问题描述】:

使用 Python Interpreter 可以正常工作,图像加载和 main.py 运行没有问题,但是当我使用 Pyinstaller 将其放入一个文件 .exe 时,.exe 崩溃并显示以下错误消息。

FileNotFoundError: 'themes.json' resource not found in 'ttkboostrap'

任何帮助将不胜感激。

【问题讨论】:

  • 你找到解决办法了吗?

标签: tkinter pyinstaller ttk


【解决方案1】:

有同样的问题。

前往您的ttkbootstrap 的安装位置,将themes.jsonSymbola.ttf(如果需要)复制到与您的main.pymain.spec 相同的文件夹中。

然后在a = Analysis() 下用datas=[('themes.json', 'ttkbootstrap'), ('Symbola.ttf', 'ttkbootstrap')] 修改您的main.spec

您可能不需要Symbola.ttf,但我在将themes.json 复制到文件夹后遇到了另一个FileNotFoundError,这也需要我带来Symbola.ttf

完成后,在提升的命令提示符下运行 pyinstaller main.spec

【讨论】:

  • 感谢您的回答。我不确定“在提升的命令提示符上运行 pyinstaller main.spec”是什么意思。我应该在运行pyinstaller main.py 之后还是之前运行此命令?
  • 您好,根本不需要运行pyinstaller main.py,只需运行pyinstaller main.spec 即可,因为.spec 文件的作用是指导Pyinstaller 如何处理您的脚本a = Analysis(['main.py'], ...)。更多细节在这里pyinstaller.readthedocs.io/en/stable/spec-files.html
【解决方案2】:

在 your.spec 文件中更改如下

datas=[('venv\Lib\site-packages\ttkbootstrap', 'ttkbootstrap')],

hiddenimports=['ttkbootstrap']

重要 - 签入您的 venv\Lib\site-packages 中可用的 ttkbootstrap 文件夹

然后运行 pyinstaller -F your.spec

【讨论】:

  • 当我尝试运行 pyinstaller -F your.spec 时,它显示`文件“gui.spec”,第 18 行 noarchive=False) ^ 语法错误:位置参数跟随关键字参数`
  • 您的规范文件有问题.. 它的工作命令 pyinstaller -F your.spec
  • 我们也是在做 pyinstaller -F main.py 之后还是之后做 pyisntaller -F your.spec 吗?
  • 在pyinstaller -F main.py之后做
  • 这个解决方案对我有用,但你需要使用 double 反斜杠(虽然它们没有显示在答案中,我猜它被 SO 转义了)。
【解决方案3】:

我遇到了同样的问题。

尝试使用旧版本的 ttkbootstrap。版本“0.5.2”适用于我的情况。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案4】:

无需更改 .spec 文件,只需添加以下命令:

pyinstaller --onefile --windowed main.py --collect-all ttkbootstrap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2022-11-12
    • 1970-01-01
    • 2022-06-20
    • 2021-09-20
    相关资源
    最近更新 更多