我正在努力使用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)有没有解决方案或替代方法?
cri*_*fan 46
正如其他人(@Anson Chan、@schlimmchen)所说:
如果你想添加一些额外的文件,你应该使用添加数据文件。
--add-datadatas=
pyinstaller第一次运行时生成。
*.spec文件。pyinstaller将直接使用您的*.spec文件。Parameter 逻辑--add-data或 中的参数datas=:
--add-data:
{source}{os_separator}{destination}
os_separator:
;:source 和 destination
source: 单个或多个文件的路径,支持glob语法。告诉 PyInstaller 在哪里可以找到文件。destination
file 或 files:目标文件夹将在运行时包含您的源文件。*注意:不是目标文件名。
'src/README.txt:.''/mygame/sfx/*.mp3:sfx'/mygame/data:data'datas=
added_files = [
( 'src/README.txt', '.' ),
( '/mygame/data', 'data' ),
( '/mygame/sfx/*.mp3', 'sfx' )
]
a = Analysis(...
datas = added_files,
...
)
Run Code Online (Sandbox Code Playgroud)
对于您的(Windows 操作系统),这里是:
--add-data 在命令行中
pyinstaller -F --add-data "main.kv;." yourtarget.py或者:
datas=在yourtarget.spec文件中,请参阅以下内容:a = Analysis(...
datas = ["main.kv", "."],
...
)
Run Code Online (Sandbox Code Playgroud)
小智 24
如果您检查pyinstaller -h帮助,您可以找到这样的--add-data选项[--add-data <SRC;DEST or SRC:DEST>].所以在你的情况下尝试
pyinstaller -F --add-data "main.kv;main.kv" yourtarget.py
Run Code Online (Sandbox Code Playgroud)
解决方案是运行:pyi-makespec yourscript.py
然后编辑 yourscript.spec 脚本并在 a= Analysis 中添加 datas 下的文件。
datas=[ ( '/pathToYourFile/main.kv', '.' )]
Run Code Online (Sandbox Code Playgroud)
那么pyinstaller yourscript.spec
在那之后运行应该是好的。
| 归档时间: |
|
| 查看次数: |
24369 次 |
| 最近记录: |