获取python.exe路径

获取python.exe路径,python,working-directory,Python,Working Directory,我用python编写了一个程序,当使用python解释器运行时,该程序可以正确运行。它从同一目录中读取一些文件。为了从其他路径运行脚本,脚本将其工作目录更改为自己的位置 import os abspath = os.path.realpath(__file__) dname = os.path.dirname(abspath) os.chdir(dname) 但当我将其打包到.exe时,这不起作用。因为在运行.exe时,\uuuu文件变量是“main.py” 我知道可以通过显式设置固定路径来修

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

import os
abspath = os.path.realpath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)
但当我将其打包到.exe时,这不起作用。因为在运行.exe时,
\uuuu文件
变量是
“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))

您是否尝试过导入系统;打印系统可执行文件?或者
os.path.dirname(sys.argv[0])
是的,对于这样一个打包的Python脚本,看看什么是等价的是很有趣的。如果完整的解释器打包在一起,它可能会执行以下操作:trick@wpercy非常感谢。我尝试了sys.executable,它可以工作。它是我的程序的.exe路径。因此,当我编写
os.chdir(sys.executable)
时,当使用python解释器运行时,它将不起作用:)。现在有什么建议?
os.chdir(sys.executable)
正在尝试将当前工作目录更改为可执行文件,而不是它所在的文件夹。