【问题标题】:Get python .exe path [duplicate]获取python .exe路径[重复]
【发布时间】:2019-07-10 00:54:22
【问题描述】:

我用 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])
  • 是的,看到 sys.executable 等于这样一个打包的 Python 脚本是非常有趣的。如果完整的解释器被打包在一起,它可能会成功
  • @wpercy 谢谢!我尝试了 sys.executable 并且它有效。这是我的程序的确切 .exe 路径。
  • 所以当我写 os.chdir(sys.executable) 时,它在使用 python 解释器运行时将不起作用:)。现在有什么建议?
  • os.chdir(sys.executable) 正在尝试将当前工作目录更改为可执行文件,不是它所在的文件夹。

标签: python working-directory


【解决方案1】:

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

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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2013-02-24
    • 2020-10-20
    • 1970-01-01
    • 2021-08-18
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多