Як я можу знайти, де Python встановлений у Windows?


169

Я хочу дізнатися свій шлях установки Python у Windows. Наприклад:

C:\Python25

Як знайти місце встановлення Python?


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

Відповіді:


338

У своєму інтерпретаторі Python введіть такі команди:

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

Що робити, якщо ти всередині віртуола? Це не буде працювати тоді.
user60561

1
@ user60561 Це повинно дати вам шлях до виконуваного файлу Python Virtualenv. У цьому випадку я не знаю способу отримати пітон OS, але мені було б цікаво дізнатися, навіщо це вам знадобиться, якщо ви бігаєте з Virtualenv?
elo80ka

Мій сценарій створює virtualenv, тому для цього використовується системний пітон. Ти змусив мене задуматися, можливо, це не потрібно ... Я перевірю це в понеділок, дякую!
user60561

Помилка: "C: \ WINDOWS \ system32> import os 'import" не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл. "
Девід Спектор

@David Spector: Моє погано. Я мав би зазначити, що вам потрібно набрати ці команди в інтерпретаторі Python, я
оновлю

63

Якщо у вашій змінній навколишнього середовища у вас python, ви можете використовувати таку команду в cmd:

>>> де пітон

або для навколишнього середовища Unix

>>> який пітон

Зображення командного рядка


Ця відповідь краща, оскільки вона не передбачає створення та виконання сценарію, а просто набагато простіше. +1
applemonkey496

54

Це було б будь-яке

  • C: \ Python36
  • C: \ Користувачі \ (Ваш авторизований користувач) \ AppData \ Місцеві \ Програми \ Python \ Python36

2
мій шлях пітона 3.6 на win10:C:\Users\YANG.LEI\AppData\Local\Programs\Python\Python36-32
Лей Ян

6
Шлях Python можна вільно налаштувати під час встановлення. У мене було декілька машин, у яких навіть не було AC: \ drive. Крім того, дані локальних додатків не обов'язково підпадають під C:\Users.
Маттео Італія

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
шаркін

Де інформація розміщена на Windows 7? Якщо у вас зручний комп'ютер під керуванням Windows 7, чи можете ви зробити пошук у реєстрі для Python та PythonCore? І подивіться, чи знайдете ви десь значення InstallPath.
кодеп

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

Будь ласка, оновіть свою відповідь коментарем 'piksel bitworks. Це працювало для мене.
dinesh ygv

1
Це приємний спосіб, але для його використання потрібно знати поточну версію python. Я все ще шукаю хороший спосіб виявити шлях python для використання з установкою nsis.
PerryWerneck

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"
Guðmundur H

7

Якщо ви хочете, щоб шлях після успішної установки, відкрийте вам CMD і введіть python або python -i

Він відкриє для вас інтерактивну оболонку, а потім наберіть

імпортувати sys

sys.executable

Натисніть Enter, і ви отримаєте шлях, де встановлений ваш пітон ...


Проблема, яку я мав з цим рішенням, полягає в тому, що я працював на python 2.7 і хотів оновити до 3.6. Я встановив 3.6, але коли я вводив python у командному рядку, я все ще працював із старого 2.7.
Тзг


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команда, яка повинна бути схожа whichна Unixes.
інший вузол

@anothernode: Якість відповіді дуже погана. Якщо ви розумієте, що намагається сказати автор, ви можете редагувати та виправити це.
sɐunıɔ ןɐ qɐp

1
якість відповіді непогана, якість питання така. Я можу підтвердити where pythonроботи на cmd.exe
Kay

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 і натисніть клавішу введення типу python, якщо вона встановлена ​​у вашому локальному файлі, вона покаже вам її версію звідти введіть наступний імпорт os import sys os.path.dirname (sys.executable)


2

Якщо у вас встановлена pyкоманда, що ви, ймовірно, виконуєте, тоді просто використовуйте --list-pathsаргумент для команди:

py --list-paths

Приклад виводу:

Встановлені Pythons, знайдені 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: \ Користувачі \ ім'я користувача \ AppData \ Місцеві \ Програми \ 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 navigatorу Windows, ви можете перейти enviornmentsі прокручувати навколишнє середовище, rootвоно буде вказувати, де воно встановлено. Це може допомогти, якщо ви хочете використовувати цю поведінку, коли вам потрібно підключити це до інших програм, де ви хочете інтегрувати якийсь код python.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.