8

我的电脑上安装了两个版本的 python。3.2 64 位安装在 C:\Python32\ 和 2.7 32 位安装在 C:\Python27。

我还有一个 C# 应用程序在注册表(64 位和 32 位)中挖掘,以根据各种条件获取最合适的 python 版本的安装路径。

我有一个名为 Code.py 的脚本,它由 C# 应用程序使用它选择的 python 版本运行。

在 Code.py 脚本中,我想运行位于 C:\Python32\Scripts 或 C:\Python27\Scripts 中的另一个脚本,具体取决于使用的 python 版本。但是,我想知道用于运行我当前所在的脚本的那个 python.exe 文件的安装路径是什么。有没有办法做到这一点,或者我必须将 C# 应用程序选择的安装路径传达为运行脚本时的参数(我想避免)?

编辑:我使用此代码将脚本内的脚本称为外部脚本

p = subprocess.Popen(["python", installPath + "\\Scripts\\Flake8", file], stdout=subprocess.PIPE)
4

1 回答 1

16

使用sys.executable.

>>> import sys
>>> sys.executable
'/usr/bin/python'

os.path.split()如果您只需要路径,则为您删除最后一个组件:

>>> import os.path
>>> os.path.split(sys.executable)
('/usr/bin', 'python')
于 2012-09-14T16:00:16.793 回答