How to get the python.exe location programmatically?
基本上,我想获得一个python解释器的句柄,这样我就可以(从外部应用程序)传递一个要执行的脚本文件。
- bhargav"这个问题:如何可以宣告,这是一年前问这个问题,它是一个duplicate是应该的,是一个duplicate它?这是周围的其他方法。
- @ mhawke其他有更多的意见,这是更好的worded和煤。因此我duped它在反向的方向。tbh,他们都说同一件事做的,所以我们可以甚至为merger国旗。
- bhargavrao @:是的,它是最好的标题写的和可能是负责的。同时接受更好的回答是,(现在的)包括一个整体的链接文件,所以我想你是对的。
这在Linux中有效,也许在Windows中也有效?
Python 2 x
1 2 3
| >>> import sys
>>> print sys.executable
/usr/bin/python |
Python 3 x
1 2 3
| >>> import sys
>>> print(sys.executable)
C:\path\to\python.exe |
- 是->>>导入sys>>>打印sys.executable C:python25pythonw.exe
- 也适用于Mac OS X。
- 我认为在PY2Exe编译的应用程序中,它将指向应用程序的可执行文件,而不是python.exe。不过,还是要有人确认。
- 只有当您已经在运行Python解释器时,这才有意义。我想他是想从python本身的外部找到这个位置。
- 我认为"以编程方式"的意思是在Python解释器中。至少,当我能找到这个答案的时候,这就是我的意思。)
- 也适用于Windows。至于Py2Exe…在这种情况下,无法保证甚至安装了python。如果有人认为每个运行自己程序的人都已经安装了py2exe,那么为什么会有人费心使用py2exe呢?
- 如下面所述,这在环境中或安装了多个Python版本时都不起作用。显然,您需要的是当前使用的Python版本。
- 当您不想将python.exe添加到路径中并希望在execv或其他路径中再次调用它时,这是一种方便的方法。
如果在嵌入式Python环境中工作,则sys.executable不可靠。我的建议是从
- py_解释器=os.path.join(os.u file_uuu.split("lib/")[0],"bin","python"))
- @阿克连你的右括号太多了。否则就太好了!
我认为这取决于您如何安装python。注意,您可以在我的机器上安装多个python。但是,如果您通过python 2.2或更高版本的msi安装,我相信它会创建一个这样的注册表项:
1
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Python.exe |
它在我的机器上给出了这个值:
您只需读取注册表项即可获取位置。
但是,您可以通过一个类似于xcopy的模型来安装python,这个模型可以放在任意位置,您只需知道它安装在哪里。
- 如果它在应用程序路径中,你甚至不需要知道位置,是吗?;)
- 在注册表中查找并不是很有用,因为您不知道您是否在运行注册表中提到的Python。