脚本编译为可执行文件时,如何查找外部使用文件的文件路径?



我正在使用pyinstaller将一个非常简单的脚本转换为可执行文件,使用我在pyinstaller中的以下参数:

pyinstaller -F --add-data "C:pathtomy_external_file.mp3;." --onefile "C:pathtomy_script.py" --distpath "C:pathtodistdirectory"

我想找出如何在外部文件转换为可执行文件并与脚本一起包含后确定外部文件的路径。

这在文档中进行了解释。 例如 https://readthedocs.org/projects/pyinstaller/downloads/pdf/stable/查找第 1.7 节 运行时信息

你也可以看看在哪里放置大型Python列表,这些列表提出了同样的问题,尽管由于问题的措辞和OP不知道的事实,SImpleGUI在下面使用pyinstaller,所以不容易找到。

以下代码允许您确定基本目录(可执行文件解压缩其所有文件的目录( pyinstaller 可执行文件始终在执行 python 代码之前提取到临时目录:

import os
import sys
if getattr(sys, "frozen", False):
# for executable mode
BASEDIR = sys._MEIPASS  
else:
# for development mode
BASEDIR = os.path.dirname(os.path.realpath(__file__))

因此,例如,如果您使用以下命令调用pyinstaller

pyinstaller -wF yourscript.py --add-data files:files

然后你可以从目录文件中获取一个文件(例如文件/file1.mp3(

mp3path = os.path.join(BASEDIR, "files", "file1.mp3")

最新更新