pyinstaller打包好一個exe後,運行此exe,會把此文件解壓縮到code
C:\Users\xxxx\AppData\Local\Temp\ 目錄下,而後運行。table
而配置文件通常放置在exe同級別目錄下。假如os.path.dirname(os.path.realpath(__file__))import
來獲取目錄,會定位到解壓縮後的地址。打包
解決方法:配置
使用以下代碼來獲取文件夾:file
os.path.dirname(os.path.realpath(sys.argv[0]))方法
附各類獲取文件目錄的方法,能夠對比嘗試下:im
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]))