我已经为我的程序创建了一个 exe 文件。它在我的桌面上运行良好。但在另一个桌面上,如果我只发送 exe 文件,它会说“找不到名为“login.kv”的文件\目录”
我需要一个独立的exe文件,无论它放在哪里或放在哪个桌面,没有源代码,它都应该运行。
我创建了一个Python Kivy项目,其中包含许多.py和.kv文件。使用 Pyinstaller 我已将其创建为 exe 文件
线路:
pyinstaller --onefile --add-data "*.py;." --add-data "*.kv;." login.py
它被创建为 exe 文件并且运行良好。
但是,当我仅将 exe 文件发送到另一个桌面时,它显示“未找到名为‘login.kv’的文件/目录”
尝试过,pyinstaller,cx_Freeze,自动 Py 到 Exe...
是不是因为我返回了
return Builder.load_file('C:/Users/Admin/PycharmProjects/CCV4Project/Main/main.kv')
这样的kv文件?
如果我使用绝对路径之类的东西,
def resource_path(relative_path):
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath('.')
return os.path.join(base_path, relative_path)
和
return Builder.load_file(self.resource_path('login.kv'))
它根据“其”位置搜索文件。
但是,我想要一个 .exe 文件,它可以运行我的整个项目,无论它放在哪里。它基本上应该像一个应用程序。
您需要使用 pyinstaller 的规范文件来构建 kivy 应用程序。还有一些其他文件必须导入并与应用程序捆绑在一起。包装文档中对此进行了描述。这是一个示例规范文件,请注意路径取决于项目的结构。这是最近项目的规范文件: https://github.com/ElliotGarbus/KivyCythonWinSample/blob/main/inno-pyinstaller/w11-app.spec
带有 kivy_deps 的行很关键。