如何编译具有 .kv 文件和其他资源文件的 .py 文件

Posted

技术标签:

【中文标题】如何编译具有 .kv 文件和其他资源文件的 .py 文件【英文标题】:How to compile a .py file which has a .kv file and other resource files 【发布时间】:2018-08-30 17:59:10 【问题描述】:

我用 python 和 Kivy 编写了一个应用程序,它有一个 main.py 和 main.kv 文件以及其他资源文件,如图像和文本文件。当我在 Windows 7 上使用 PyInstaller.exe 编译它们时,我不知道后台发生了什么。每次编译时,.exe 文件都会崩溃并出现不同的错误。

所以我希望有人能阐明我将如何获取 main.py 中的所有文件,即编译图像和文本文件。

我在命令行中尝试的命令是:

PyInstaller.exe --onefile --icon=myicon.png main.py

【问题讨论】:

【参考方案1】:

在您第一次运行Pyinstaller 后,它应该已经创建了一个main.spec 文件。您可以编辑main.spec 文件以添加您的应用程序需要的任何其他资源(除了Pyinstaller 检测到的资源)。然后你可以使用简单的命令运行Pyinstaller

pyinstaller main.spec

请注意,当您提供规范文件参数时,Pyinstaller 的大多数选项都无效(所有这些信息都应该在规范文件中)。如需更多信息,请参阅Pyinstaller docs。

【讨论】:

我收到此错误“OSError: File C:\Users\Sycopath\Desktop\Test field\backup\bk1\dist\Njoro\kivymd \fonts/Roboto-Regular.ttfs not found。当我执行我的代码它完美地工作。并且.ttfs的路径不存在 如果您的脚本需要 PyInstaller 不知道的文件,请执行此操作 "pyi-makespec --paths=/path/to/thisdir --paths=/path/to/otherdir myscript.py" 您在运行pyinstaller 时是否遇到该错误?您的代码或 main.spec 文件中是否引用了该路径? 抱歉耽搁了。 Ikolim 我应该从哪里获得“pyi-makespec ...”的文档以避免进一步的问题 编译后运行 .exe 时出现错误。错误来自 kivymd 设计模块,我没有使用 .spec 文件。我刚刚使用了命令提示符中的“python -m PyInstaller ...”

以上是关于如何编译具有 .kv 文件和其他资源文件的 .py 文件的主要内容,如果未能解决你的问题,请参考以下文章

当屏幕在主 .kv 文件中管理时,如何从 .py 文件切换屏幕?

如何打印在.kv(kivy)中输入的TextInput值,以打印在.py文件中?

如何:main.py,带有 kivy 轮播代码的新类,kv 文件

kivy 对 .py 和 .kv 文件的需求是啥

如何在.kv文件中传递变量

如何将函数绑定到kv文件中的按钮