gpt4 book ai didi

python - 使用 PyInstaller (--onefile) 捆绑数据文件

转载 作者:IT老高 更新时间:2023-10-28 21:11:13 30 4
gpt4 key购买 nike

我正在尝试使用 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')]

我应该补充一点,我也尝试过不将它们放在子文件夹中,但没有任何区别。

编辑: 由于 PyInstaller 更新,将较新的答案标记为正确。

最佳答案

较新版本的 PyInstaller 不再设置 env 变量,所以 Shish 的优秀 answer不管用。现在路径被设置为 sys._MEIPASS:

def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")

return os.path.join(base_path, relative_path)

关于python - 使用 PyInstaller (--onefile) 捆绑数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674790/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com