今天在试验打包exe时,发现在编辑器下和exe中获取路径得到的结果不同,这里记录下来供大家参考:
代码都是一样的,总共5中获取路径的方式,首先代码如下:
current_path = sys.path[0]
current_path = sys.argv[0]
current_path = os.path.dirname(os.path.realpath(sys.executable))
current_path = os.path.dirname(os.path.realpath(sys.argv[0]))
current_path = os.path.split(os.path.realpath(__file__))[0]
在编辑器中,分别得到如下结果:
D:\新建文件夹
D:/新建文件夹/rename_gba.py
C:\Users\JF\AppData\Local\Programs\Python\Python310
D:\新建文件夹
D:\新建文件夹
我这个python文件是放在新建文件夹里的,也就是说1,4,5三种方式可以正确获得文件路径。
在exe中,分别得到如下结果:
C:\Users\JF\AppData\Local\Temp_MEI100082\base_library.zip
D:\新建文件夹\dist\rename_gba.exe
D:\新建文件夹\dist
D:\新建文件夹\dist
C:\Users\JF\AppData\Local\Temp_MEI100082
可以看出3,4两种方式可以得到正确的路径。
我也不想深究里面的原理,只是写出这种情况,供大家参考。