Sob*_*iev 3 python working-directory
我用 python 制作了一个程序,当使用 python 解释器运行时它可以正确运行。它从同一目录中读取一些文件。为了从其他路径运行脚本,脚本将其工作目录更改为自己的位置。
import os
abspath = os.path.realpath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)
Run Code Online (Sandbox Code Playgroud)
但是当我将其打包为 .exe 时,这不起作用。因为在运行 .exe 时,__file__变量是"main.py".
我知道可以通过显式设置固定路径来修复它:
os.chdir('/Fixed/Path')
Run Code Online (Sandbox Code Playgroud)
但是有一个优雅的解决方案吗?
所以这里的答案实际上分为两部分。要获取可执行文件的位置,您可以使用
import sys
exe = sys.executable
Run Code Online (Sandbox Code Playgroud)
然后 chdir 到可执行文件的目录,您应该尝试类似
import os
import sys
exe = sys.executable
dname = os.path.dirname(exe)
os.chdir(dname)
Run Code Online (Sandbox Code Playgroud)
或者干脆
os.chdir(os.path.dirname(sys.executable))
Run Code Online (Sandbox Code Playgroud)