Как я могу найти, где Python установлен в Windows?


170

Я хочу узнать мой путь установки Python в Windows. Например:

C:\Python25

Как я могу найти, где установлен Python?


Вы должны дать больше информации. Вы знаете, что Python установлен, но можете ли вы запустить Python или нет? В моем случае я не установил его; различные продукты, возможно, установили его, и я хочу выяснить, существует ли он где-то в файловой системе. Будет ли переводчик называться python.exe? Я понятия не имею.
Дэвид Спектор

Ответы:


340

В интерпретаторе Python введите следующие команды:

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

Что делать, если вы внутри virtualenv? Это не будет работать тогда.
user60561

1
@ user60561 Это должно дать вам путь к исполняемому файлу Virtualenv's Python. Я не знаю, как получить OS Python, в таком случае, но мне было бы интересно узнать, зачем вам это нужно, если вы работаете изнутри Virtualenv?
elo80ka

Мой сценарий создает virtualenv, поэтому он использует системный python для этого. Вы заставили меня задуматься, хотя, может быть, это и не нужно ... Я проверю это в понедельник, спасибо!
user60561

Ошибка: «C: \ WINDOWS \ system32> import os 'import' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл».
Дэвид Спектор

@ Дэвид Спектор: Мой плохой. Я должен был заметить, что вы должны вводить эти команды в интерпретаторе Python, я
обновлю

64

Если в вашей переменной окружения есть python, вы можете использовать следующую команду в cmd:

>>> где питон

или для окружающей среды Unix

>>> какой питон

изображение командной строки


Этот ответ лучше, потому что он не включает в себя создание и выполнение сценария, и он просто намного проще. +1
applemonkey496

54

Это было бы либо

  • C: \ Python36
  • C: \ Users \ (Ваш вошедший в систему пользователь) \ AppData \ Local \ Programs \ Python \ Python36

2
Мой путь к Python 3.6 на win10: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

Где информация находится на Windows 7? Если у вас есть компьютер под управлением Windows 7, не могли бы вы выполнить поиск в реестре Python и PythonCore? И посмотрите, найдете ли вы где-нибудь значение InstallPath.
Кодеап

7
В 64-битных версиях Windows (которые вы, вероятно, используете) он будет находиться под ключом Wow6432Node, IE HKLM \ SOFTWARE \ Wow6432Node \ Python \ PythonCore \ versionnumber \ InstallPath
piksel bitworks

Пожалуйста, обновите свой ответ комментариями «piksel bitworks». Это сработало для меня.
Динеш Игв

1
Это хороший способ, но чтобы использовать его, нужно знать текущую версию Python. Я все еще ищу хороший способ определить путь к Python для использования с установщиком nsis.
PerryWerneck

13

При установке Windows я получаю следующие результаты:

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

(Вы также можете найти sys.pathразумные места.)


но как мы можем сделать то же самое, используя пакетный файл?
Патрик

@ Патрик, я думаю, 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"
Guðmundur H

7

Если вам нужен путь после успешной установки, то сначала откройте CMD и введите python или python -i

Откроется интерактивная оболочка для Вас, а затем введите

импорт системы

sys.executable

Нажмите Enter, и вы получите путь, где установлен ваш питон ...


Проблема, с которой я столкнулся при использовании этого решения, заключается в том, что я использовал Python 2.7 и хотел обновить его до 3.6. Я установил 3.6, но когда я набрал python в командной строке, я все еще работал со старой 2.7.
ЦГ


5

Вы можете найти «переменную среды для вашей учетной записи». Если вы добавили Python в путь, он будет отображаться как «путь» в вашей учетной записи переменной среды.

но почти всегда вы найдете его в " C: \ Users \% имя_пользователя% \ AppData \ Local \ Programs \ Python \ Python_version "

папка « AppData » может быть скрыта, сделать ее видимой из раздела просмотра панели инструментов .


4

Чтобы узнать, где установлен Python, вы можете выполнить его where pythonв cmd.exe.


(Похоже, что это сообщение не дает ответа на вопрос. Пожалуйста, либо отредактируйте свой ответ, либо просто опубликуйте его как комментарий к вопросу).
sɐunıɔ ןɐ qɐp

2
@ sɐunıɔ ןɐ qɐp На самом деле это ответ, и он может быть даже правильным. Я не очень знаком с Windows, но на самом деле, кажется, есть whereкоманда, которая должна быть похожа whichна Unixes.
другой узел

@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.
января

Да, кажется, я создал ошибку там.
Питер

2

Перейдите в C: \ Users \ USER \ AppData \ Local \ Programs \ Python \ Python36, если его там нет, откройте консоль с помощью windows + ^ R. Затем введите cmd и нажмите ввод типа python, если он установлен в локальном файле, он покажет вам свою версию. оттуда введите следующий импорт или импорт 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

* Указывает текущую активную версию для скриптов, выполняемых с помощью pyкоманды.


1

Это сработало для меня: C:\Users\Your_user_name\AppData\Local\Programs\Python

Мой установленный в данный момент python versionесть3.7.0

Надеюсь это поможет!


1

Его вообще

'C: имя-пользователя \ Users \ \ AppData \ Local \ Programs \ Python \ Python-версия'

или попробуйте использовать (в cmd)

где питон


0

если вы все еще застряли или вы получите это

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

просто сделайте это замените 2 \ одним

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

0

Я установил 2 и 3, и у меня возникла та же проблема с поиском 3. К счастью, ввод пути в пути к Windows позволил мне найти, где я его установил. Путь был вариант, когда я установил Python, который я просто забыл. Если вы не выбрали установку пути при установке Python 3, это, вероятно, не будет работать - если вы не обновили путь вручную, когда устанавливали его. В моем случае это было в c: \ Program Files \ Python37 \ python.exe


0

Если вы используете anaconda navigatorWindows, вы можете пойти enviornmentsи прокрутить среду, rootсреда покажет, где она установлена. Это может помочь, если вы хотите использовать эту среду, когда вам нужно подключить ее к другим приложениям, где вы хотите интегрировать некоторый код Python.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.