pyinstaller相对路径
时间: 2023-11-11 09:06:20 浏览: 115
当使用PyInstaller将Python脚本打包成可执行文件后,由于可执行文件在运行时的工作目录并不一定是脚本所在目录,因此需要使用相对路径来访问程序所需的文件。在PyInstaller中使用相对路径时,可以使用以下方法:
1. 使用os模块的相对路径函数:可以使用os模块的path.join()函数来构建相对路径。例如,如果要访问脚本所在目录下的data文件夹中的file.txt文件,可以使用以下代码:
```
import os
# 获取脚本所在目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 构建相对路径
rel_path = "data/file.txt"
abs_file_path = os.path.join(script_dir, rel_path)
# 读取文件内容
with open(abs_file_path, "r") as f:
content = f.read()
```
2. 使用sys._MEIPASS变量:在使用PyInstaller打包时,可以使用sys._MEIPASS变量获取打包后的文件所在目录。例如,如果要访问打包后程序所在目录下的data文件夹中的file.txt文件,可以使用以下代码:
```
import sys
import os
# 获取打包后程序所在目录
bundle_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__)))
# 构建相对路径
rel_path = "data/file.txt"
abs_file_path = os.path.join(bundle_dir, rel_path)
# 读取文件内容
with open(abs_file_path, "r") as f:
content = f.read()
```
阅读全文