我正在尝试使用PyInstaller构建一个单文件EXE,它包含一个图像和一个图标.我无法为我的生活而努力--onefile.
如果我这样做--onedir,一切工作都很顺利.当我使用时--onefile,它找不到引用的附加文件(运行编译的EXE时).它找到了DLL和其他一切都很好,只是不是两个图像.
我查看了运行EXE时生成的temp-dir(\Temp\_MEI95642\例如),文件确实在那里.当我将EXE放入该临时目录时,它会找到它们.非常困惑.
这是我添加到.spec文件中的内容
a.datas += [('images/icon.ico', 'D:\\[workspace]\\App\\src\\images\\icon.ico', 'DATA'),
('images/loaderani.gif','D:\\[workspace]\\App\\src\\images\\loaderani.gif','DATA')]
Run Code Online (Sandbox Code Playgroud)
我应该补充一点,我也试过不把它们放在子文件夹中,没有什么区别.
编辑: 由于PyInstaller更新,标记的较新答案正确.
我正在努力使用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)有没有解决方案或替代方法?
没有在kivy论坛得到回复,所以试试这里.
当我将教程pong代码编译为一个文件可执行文件时,我仍然必须将pong.kv文件包含在同一个文件夹中才能运行.否则,启动exe时出现以下错误:
GL: EXT_framebuffer_object is supported
[INFO ] [GL ] OpenGL version
[INFO ] [GL ] OpenGL vendor
[INFO ] [GL ] OpenGL renderer
[INFO ] [GL ] OpenGL parsed version: 2, 1
[INFO ] [GL ] Shading version
[INFO ] [GL ] Texture max size
[INFO ] [GL ] Texture max units
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed,
single mode, not docked
Traceback (most recent call last):
File … 我正在尝试使用pyinstaller 构建一个非常基本的python脚本:print 'hello world!'我正在尝试创建一个数据文件或二进制文件可用的数据文件目录.
我一遍又一遍地阅读文档,我尝试使用1.5,2.0和2.0版本的dev构建,我尝试使用--onefile和--onedir构建,我尝试在OS X上构建Linux,但由于某种原因,我的.spec文件中的datafile/tree语句似乎被忽略了.
以下是我尝试过的一些.spec文件变体:
coll = COLLECT(exe,
a.binaries
[('README','/Users/username/my_little_app/foo','DATA')],
Tree('/Users/username/my_little_app/foo','foo'),
Tree('/foo','foo'),
Tree('my_little_app/foo','foo'),
[('my_xml_file.xml','my_little_app/partner.xml','DATA')],
a.zipfiles,
a.datas,
strip=None,
upx=True,
name=os.path.join('dist', 'my_little_app'))
a.datas += [('my_xml_file.xml', '/Users/username/my_little_app/my_xml_file.xml', 'DATA')]
Run Code Online (Sandbox Code Playgroud)
有什么我想念的吗?