我正在努力使用pyinstaller,每当我使用kivy GUI构建这个特定的脚本并在构建之后运行.exe时我会得到致命的错误,它无法执行脚本.我通过cmd运行它,它给我错误:IOError: [Errno 2] No such file or directory: 'main.kv'
我尝试在启动构建时使用--add-data添加.kv文件以及mdb和dsn文件(在脚本中使用pypyodbc),但这样做我收到错误:( unrecognized arguments: --add-data'main.kv'其余的指定文件为--add-data follow)有没有解决方案或替代方法?
我有一个非常简单的应用程序(只是一个带有标签的窗口),我正在尝试引导自己完成变成单个可执行文件的过程。这是程序目录:
brainfreeze/
main.py # simple app
main.kv # kv language style sheet
config/
settings.json # json settings panel data (F1 bound)
saving_to/
(empty at start)
Run Code Online (Sandbox Code Playgroud)
我已经成功地使用 PyInstaller 将程序编译为可执行文件,但只使用了他们文档中描述的一个文件夹捆绑方法;我希望改用一个文件包方法。到目前为止,当我编译时,应用程序启动但它是黑屏(传统上我在main.kv无法加载时看到过这种情况)。我已经阅读了this、this、this甚至 PyInstaller文档,但没有成功编译为单个可执行文件。这是 prog_test.spec:
# -*- mode: python -*-
from kivy.deps import sdl2
from kivy.deps import glew
block_cipher = None
a = Analysis(['..\\brainfreeze\\main.py'],
pathex=['H:\\TestBed\\single_exe_test'],
binaries=[],
data=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
a.datas += [('../brainfreeze/main.kv', 'DATA'), …Run Code Online (Sandbox Code Playgroud) 我是编程(和Python)的新手,而StackOverflow问题/响应系统使我能够解决所有问题,直到现在。我没有找到任何直接解决我当前问题的帖子,但是不得不承认我并不真正知道出什么问题。让我解释。
我正在尝试*.py使用PyInstaller 制作脚本的可执行文件。使用简单的Python脚本(使用--onefile)完成此操作没有问题,但是当涉及到使用其他*.py和*.txt文件的更复杂程序时,它就不起作用。我知道我需要修改规格文件并尝试了许多替代方法-例如添加隐藏文件。
这些是文件:
UpdatingStrategy.py (要在可执行文件中转换的目标文件)LPRfunctions.py(UpdatingStrategy.py从该文件导入函数)*.txt读取以下文件UpdatingStrategy.py:
Strategy_Observ.txtStrategy_Problems.txtUpdating_Observ1.txtUpdating_Observ2.txtUpdating_Problems.txt我正在使用Python 3.5和Windows10。请告诉我是否需要其他信息。
有人可以告诉我如何正确使用spec文件并对其进行修改,以使之成为可执行文件UpdatingStrategy.py吗?我已经阅读了PyInstaller文档,但是我缺乏许多关键原则,因此无法正常工作。