pyinstaller打包好一个exe后,运行此exe,会把此文件解压缩到
C:\Users\xxxx\AppData\Local\Temp\ 目录下,然后运行。
而配置文件一般放置在exe同级别目录下。假如os.path.dirname(os.path.realpath(__file__))
来获取目录,会定位到解压缩后的地址。
解决方法:
使用如下代码来获取文件夹:
os.path.dirname(os.path.realpath(sys.argv[0]))
附各种获取文件目录的方法,可以对比尝试下:
import os, sys
print('__file__:', __file__)
print('realpath of __file__:', os.path.realpath(__file__))
print('sys.executable:', sys.executable)
print('realpath of sys.executable:', os.path.realpath(sys.executable))
print('sys.argv[0]:', sys.argv[0])
print('realpath of sys.argv[0]:', os.path.realpath(sys.argv[0]))
print('sys.path[0]:', sys.path[0])
print('realpath of sys.path[0]:', os.path.realpath(sys.path[0]))