我用Python编写了一个程序,当在Python解释器中运行时,可以正常运行。它从同一目录下读取一些文件。为了能够从其他路径运行脚本,该脚本将其工作目录更改为自身所在位置。
import os
abspath = os.path.realpath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)
但是,当我将其打包为.exe文件时,它就不起作用了。因为运行.exe时,__file__
变量被设置为"main.py"
。
我知道可以通过显式设置固定路径来解决此问题:
os.chdir('/Fixed/Path')
但是是否有一种优雅的解决方案?
import sys; print sys.executable
吗? 或者os.path.dirname(sys.argv[0])
? - wpercysys.executable
等于什么是非常有趣的。如果完整的解释器与其一起打包,它可能会奏效。 - ForceBruos.chdir(sys.executable)
时,在使用 Python 解释器运行时它不起作用 :). 现在有什么建议? - Sobiros.chdir(sys.executable)
试图将当前工作目录更改为可执行文件所在的文件夹,而不是该文件夹。 - martineau