如何找到Windows上Python的安装位置?


169

我想找出Windows上的Python安装路径。例如:

C:\Python25

如何找到Python的安装位置?


您应该提供更多信息。您知道已经安装了Python,但是您能否运行Python?就我而言,我没有安装它。各种产品可能已经安装了它,我想找出它是否存在于文件系统中。解释器将被称为python.exe吗?我不知道。
David Spector

Answers:


337

在您的Python解释器中,键入以下命令:

>>> import os
>>> import sys
>>> os.path.dirname(sys.executable)
'C:\\Python25'

如果您位于virtualenv中怎么办?那就行不通了。
user60561

1
@ user60561它应该为您提供Virtualenv的Python可执行文件的路径。在那种情况下,我不知道一种获取操作系统python的方法,但是如果您是从Virtualenv中运行的,我想知道为什么需要它?
elo80ka

我的脚本创建了一个virtualenv,因此它使用系统python来实现。但是,您让我开始思考,也许这不是必需的……我将在周一检查出来,谢谢!
user60561

错误:“ C:\ WINDOWS \ system32> import os'import'无法识别为内部或外部命令,可操作程序或批处理文件。”
David Spector

@David Spector:我不好。我应该注意到,您必须在Python解释器中键入这些命令,我​​将更新答案:-)
elo80ka


54

可能是

  • C:\ Python36
  • C:\ Users \(您登录的用户)\ AppData \ Local \ Programs \ Python \ Python36

2
我在win10上使用Python 3.6的路径:C:\Users\YANG.LEI\AppData\Local\Programs\Python\Python36-32
杨磊

6
在安装过程中可以自由定制Python路径。我有几台甚至没有 ac:\驱动器的机器。另外,本地应用程序数据不一定位于之下C:\Users
Matteo Italia

49

如果您需要了解Windows 的安装路径而不启动python解释器,请查看Windows注册表。

每个安装的Python版本在以下任一位置都有一个注册表项:

  • HKLM\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
  • HKCU\SOFTWARE\Python\PythonCore\versionnumber\InstallPath

在64位Windows中,它将位于Wow6432Node密钥下:

  • HKLM\SOFTWARE\Wow6432Node\Python\PythonCore\versionnumber\InstallPath

这似乎在Windows 7上是错误的,至少对于python 2.7
sharkin 2010年

Windows 7上的信息在哪里?如果您有Windows 7计算机,可以对Python和PythonCore进行注册表搜索吗?并查看是否在某处找到InstallPath值。
codeape 2010年

7
在Windows的64位版本(您可能正在使用)中,它将位于Wow6432Node密钥下,即IE HKLM \ SOFTWARE \ Wow6432Node \ Python \ PythonCore \ versionnumber \ InstallPath
piksel bitworks

请使用“ piksel bitworks”的评论更新您的答案。它为我工作。
dinesh ygv 2014年

1
这是一种不错的方法,但是要使用它,需要知道当前的python版本。我仍在寻找一种检测与nsis安装程序一起使用的python路径的好方法。
PerryWerneck 2015年

13

在Windows安装上,我得到以下结果:

>>> import sys
>>> sys.executable
'C:\\Python26\\python.exe'
>>> sys.platform
'win32'
>>>

(您也可以寻找sys.path合理的位置。)


但是我们如何使用批处理文件来做同样的事情?
帕特里克

@Patrick我认为python -c "import sys; print(sys.executable)"会起作用
wjandrea

8

sys软件包中,您可以找到有关安装的许多有用信息:

import sys
print sys.executable
print sys.exec_prefix

我不确定这会在Windows系统上提供什么,但是在Mac上却executable指向Python二进制文件和exec_prefix安装根目录。

您也可以尝试使用以下方法检查sys模块:

import sys
for k,v in sys.__dict__.items():
    if not callable(v):
        print "%20s: %s" % (k,repr(v))

@GuoH我们可以使用批处理文件来做同样的事情吗?
帕特里克

你可以这样做python -c "import sys; print sys.executable"
格维兹^ h

7

如果您想要安装成功后的路径,请先打开CMD并输入python或python -i

它将为您打开交互式外壳,然后键入

导入系统

可执行文件

点击Enter键,您将获得安装Python的路径...


这个解决方案的问题是我正在运行python 2.7,并想升级到3.6。我安装了3.6,但是当我在命令行上键入python时,我仍然是从旧的2.7运行。
tzg


5

您可以搜索“您帐户的环境变量”。如果您在路径中添加了Python,那么它将在您的环境变量帐户中显示为“路径”。

但几乎总是可以在“ C:\ Users \%User_name%\ AppData \ Local \ Programs \ Python \ Python_version ”中找到它

AppData ”文件夹可能已隐藏,从工具栏的“ 视图”部分可见。


4

要知道Python的安装位置,可以where python在cmd.exe中执行。


(此帖子似乎没有提供问题的答案。请编辑您的答案,或仅将其发布为对该问题的评论)。
sɐunıɔןɐqɐp

2
@sɐunıɔןɐqɐp这实际上是一个答案,甚至可能是正确的。我对Windows不太熟悉,但实际上似乎有一个where命令应该与whichUnixes上命令相似。
anothernode '18

@anothernode:答案的质量很差。如果您了解作者要说的话,则可以自由编辑和修复它。
sɐunıɔןɐqɐp

1
答案的质量还不错,问题的质量是。我可以where python在cmd.exe上确认工作

3

如果有人需要在C#中执行此操作,请使用以下代码:

static string GetPythonExecutablePath(int major = 3)
{
    var software = "SOFTWARE";
    var key = Registry.CurrentUser.OpenSubKey(software);
    if (key == null)
        key = Registry.LocalMachine.OpenSubKey(software);
    if (key == null)
        return null;

    var pythonCoreKey = key.OpenSubKey(@"Python\PythonCore");
    if (pythonCoreKey == null)
        pythonCoreKey = key.OpenSubKey(@"Wow6432Node\Python\PythonCore");
    if (pythonCoreKey == null)
        return null;

    var pythonVersionRegex = new Regex("^" + major + @"\.(\d+)-(\d+)$");
    var targetVersion = pythonCoreKey.GetSubKeyNames().
                                        Select(n => pythonVersionRegex.Match(n)).
                                        Where(m => m.Success).
                                        OrderByDescending(m => int.Parse(m.Groups[1].Value)).
                                        ThenByDescending(m => int.Parse(m.Groups[2].Value)).
                                        Select(m => m.Groups[0].Value).First();

    var installPathKey = pythonCoreKey.OpenSubKey(targetVersion + @"\InstallPath");
    if (installPathKey == null)
        return null;

    return (string)installPathKey.GetValue("ExecutablePath");
}

1
大多数用户都不会同时使用HKCU和HKLM吗?这似乎会丢失全局安装的python实例。
jtbr

是的,似乎我在那里创建了一个错误。
彼得

2

如果不存在,请转到C:\ Users \ USER \ AppData \ Local \ Programs \ Python \ Python36,然后通过Windows + ^ R打开控制台,然后键入cmd并按Enter键键入python(如果安装在本地文件中)将显示其版本从那里输入以下import os import sys os.path.dirname(sys.executable)


2

如果您已经py安装了命令(可能已安装),则只需使用--list-paths命令的参数即可:

py --list-paths

输出示例:

py Launcher对于Windows
-3.8-32 C:\ Users \ cscott \ AppData \ Local \ Programs \ Python \ Python38-32 \ python.exe *
-2.7-64 C:\ Python27 \ python.exe 找到的已安装Python

*表示使用该py命令执行的脚本的当前活动版本。


1

这对我有用: C:\Users\Your_user_name\AppData\Local\Programs\Python

我当前安装的python version3.7.0

希望这可以帮助!


1

一般而言

'C:\ Users \用户名\ AppData \ Local \ Programs \ Python \ Python-version'

或尝试使用(在cmd中)

哪里python


0

如果您仍然卡住或得到这个

C:\\\Users\\\name of your\\\AppData\\\Local\\\Programs\\\Python\\\Python36

只需将2替换为1

C:\Users\akshay\AppData\Local\Programs\Python\Python36

0

我安装了2和3,发现3时遇到了相同的问题。幸运的是,在Windows路径中键入path可以让我找到安装它的位置。安装刚忘记的Python时,路径是一个选项。如果在安装Python 3时未选择设置路径,则可能无法使用-除非在安装时手动更新了路径。就我而言,它位于c:\ Program Files \ Python37 \ python.exe


0

如果anaconda navigator在Windows上使用,也可以enviornments在环境上滚动,该root环境将指示其安装位置。当您需要将此环境连接到要在其中集成一些python代码的其他应用程序时,可以使用该环境。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.