【发布时间】:2019-05-21 10:52:36
【问题描述】:
我使用 pyinstaller 为我的 python 应用程序构建了一个可执行文件。我使用 --add-data 命令添加了两个文件夹(数据和音频样本)。可执行文件正在运行。但是我在哪里可以找到我添加的两个数据文件夹。它们不是和可执行文件一起放入 dist 文件夹吗?
【问题讨论】:
标签: python python-3.x pyinstaller
我使用 pyinstaller 为我的 python 应用程序构建了一个可执行文件。我使用 --add-data 命令添加了两个文件夹(数据和音频样本)。可执行文件正在运行。但是我在哪里可以找到我添加的两个数据文件夹。它们不是和可执行文件一起放入 dist 文件夹吗?
【问题讨论】:
标签: python python-3.x pyinstaller
当您将数据添加到 PyInstaller 时,它会将您的数据带入并以temp 文件夹中的one-file 模式提取它(例如,在 Windows 上,它将类似于 C:\Users\<User>\Appdata\local\temp\_MEI60482\),因此您需要更改代码以打开您从该目录中的文件。一个好的做法是在代码中使用此函数来检索数据。运行可执行文件时,sys._MEIPASS 将等于 PyInstaller 临时文件夹。
def resource_path(relative_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath("."), relative_path)
然后您可以将它与source = resource_path("audio.zip") 之类的东西一起使用。
【讨论】:
appdata/roaming 作为其数据文件。那你要不要删除就自己动手了。