我正在尝试使用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更新,标记的较新答案正确.
我正在使用.spec文件使用PyInstaller"编译"程序.我正在使用.spec文件,因为我需要在程序中包含一个额外的文件.当我尝试这样做时PyInstaller --onefile Prog.spec,它仍然会将dist所有文件分开,而不是像我期望的那样制作单个文件.如果我这样做,PyInstaller --onefile Prog.py它确实会生成一个.exe文件dist,这就是我想要的.使用.spec文件时,我需要做些什么特别的事情吗?