获取 python.exe 路径

Get python .exe path

我用 python 编写了一个程序,当 运行 使用 python 解释器时 运行 是正确的。它从同一目录读取一些文件。为了 运行 来自其他路径的脚本,脚本将其工作目录更改为它自己的位置。

import os
abspath = os.path.realpath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)

但是当我把它打包成.exe 时,这不起作用。因为当 运行ning .exe 时 __file__ 变量是 "main.py".

我知道可以通过显式设置固定路径来修复它:

os.chdir('/Fixed/Path')

但是有没有优雅的解决方案呢?

所以这里的答案实际上分为两部分。要获取可执行文件的位置,您可以使用

import sys
exe = sys.executable

然后 chdir 到可执行文件的目录,你应该尝试

import os
import sys

exe = sys.executable
dname = os.path.dirname(exe)
os.chdir(dname)

或者干脆

os.chdir(os.path.dirname(sys.executable))