【发布时间】:2017-09-30 04:56:39
【问题描述】:
当我尝试将 pyinstaller 与“KivyMD Kitchen Sink”(--one file --debug --clean)一起使用时,我得到了这个:
File "kivymd\theming.py", line 17, in <module>
File "site-packages\kivy\core\text\__init__.py", line 248, in register
# and pass it in context.config token
OSError: File C:\Users\username\AppData\Local\Temp\_MEI92522\kivymd\fonts/Roboto-Regular.ttfs not found
Failed to execute script main
我尝试使用:
if hasattr(sys, '_MEIPASS'):
os.chdir(sys._MEIPASS)
在 main.py 中,但没有任何改变。
另外,我将 Roboto-Regular.ttf 复制到 main.exe 的目录,但没有成功。
Pyinstaller 与其他 Kivy 应用程序配合良好。
更新:
我找到了一个临时解决方案。我使用 pyinstaller 的 --onedir 命令与 main.py 而不是 main.spec 文件:
wine pyinstaller --onedir main.py
然后,我将 kivymd 文件夹 (../site-packages/kivyMD) 复制到我的应用程序的文件夹中,应用程序启动时没有出现错误。
无论如何,我想将应用程序冻结为--onefile,有什么建议吗?谢谢!
【问题讨论】:
-
混合斜线的效果大概和stackoverflow.com/questions/42609043/…一样
-
您能否将您的应用程序缩减为minimal reproducible example?要么是文件没有被包含,要么是执行逻辑没有找到它,可能是由于混合斜线。
标签: python kivy material-design pyinstaller kivymd