Добавление пути Python в Windows 7

139

Я пытался добавить путь Python в командную строку в Windows 7, но независимо от метода, который я пробую, похоже, ничего не работает. Я использовал эту setкоманду, я пробовал добавить ее через приглашение «Изменить переменные среды» и т. Д.

Более того, если я запустил команду set в командной строке, она перечислит это

python = c:\python27

Тем не менее, он все еще не распознает команду Python.

Чтение документации и различных других источников, похоже, не помогло.

Изменить: чтобы уточнить, я добавил путь к исполняемому файлу Python в PATH в приглашении среды редактирования. Кажется, не работает.

Rogerklutz
источник
Находится ли исполняемый файл в этом каталоге? Нет ли внутри этого каталога bin?
Anirudh Ramanathan
@ anirudh4444 Нет, он в этом каталоге ...
rogerklutz
Вы можете получить оба варианта GUIи Command Lineздесь stackoverflow.com/a/38141751/5409601
Рафает Уллах 01
Хотя это неприемлемо для вас, с установщиком Windows Python 3.6 (и, возможно, более ранними версиями) вы можете выбрать «Настроить» свою установку, и есть флажок для добавления Python к вашему пути.
Paulhauner

Ответы:

266
  1. Удерживайте Winи нажмите Pause.
  2. Щелкните Advanced System Settings.
  3. Щелкните Переменные среды.
  4. Добавить ;C:\python27к Pathпеременной.
  5. Перезапустите командную строку.
Melhosseiny
источник
2
Да, я уже это сделал. Извините, если я не
уточнил
11
Убедитесь, что у вас нет пробелов в переменных python и path.
Yossi
4
@rogerklutz: Просто убедитесь, что вы добавляете «; C: \ python27» к уже существующей переменной PATH, а не создаете новую переменную с «C: \ python27» в качестве значения.
вассиманы 06
5
Во многих случаях вам также необходимо выйти и снова войти после установки переменной Path.
dk123 05
Страдая от аналогичной проблемы, сделал все, кроме шага 5 ... Спасибо, что включили это.
ReiMasuro
112

При установке переменных среды в Windows я много раз ошибался. Я подумал, что должен поделиться здесь несколькими своими прошлыми ошибками, надеясь, что это может кому-то помочь. (Они применяются ко всем переменным среды, а не только при установке пути Python)

Остерегайтесь этих возможных ошибок:

  1. Убейте и снова откройте окно оболочки: после того, как вы внесете изменения в переменные ОКРУЖАЮЩЕЙ СРЕДЫ, вы должны перезапустить окно, в котором вы его тестируете.
  2. БЕЗ ПРОБЕЛОВ при установке переменных. Убедитесь, что вы добавляете ;C:\Python27БЕЗ пробелов. (Обычно C:\SomeOther; C:\Python27ставить пробел (␣) после точки с запятой недопустимо.)
  3. ИСПОЛЬЗУЙТЕ НАЗАД, когда указываете полный путь. Вы увидите косую черту, когда попробуете, echo $PATHно у меня сработали только обратные косые черты.
  4. НЕ ДОБАВЛЯЙТЕ последнюю обратную косую черту . Только C:\Python27НЕC:\Python27\

Надеюсь, это кому-то поможет.

Рам Нарасимхан
источник
1
Причина, по которой я выбрал этот ответ, заключается в том, что в большинстве случаев PATH ломается из-за одной из этих 4 вещей. Легкая часть - сделать это правильно, сложная - замечать, когда вы сделали это неправильно!
grettke 05
1
Команда echo $pathдействительна только в том случае, если вы запускаете оболочку bash под Windows (например, MinGW). Команда командной строки Windowsecho %path%
Брюс Петерсон
2
Я не обнаружил, что задний люфт представляет собой проблему. Я что-то упускаю?
mystrdat
51

Откройте cmd .exe с правами администратора (щелкните приложение правой кнопкой мыши). Затем введите:

setx path "% path%; C: \ Python27;"

Не забудьте поставить точку с запятой и не включать косую черту в конце.

кеничи
источник
3
+ 1- Это позволяет добавлять в путь без прав администратора. Однако я не уверен, что нужен% path%. В моей системе Windows 7 новые окна cmd теперь имеют две копии предыдущих путей.
Пол Линч
% path% - это ваше старое значение переменной пути, так что "C: \ Python27;" будет добавлен к существующему пути.
пехота
32

У меня были проблемы с этим в течение длительного времени. Я добавил его в свой путь всеми возможными способами, но вот что в итоге сработало для меня:

  1. Щелкните правой кнопкой мыши «Мой компьютер»
  2. Нажмите "Свойства"
  3. Нажмите "Расширенные настройки системы" на боковой панели.
  4. Щелкните "Переменные среды"
  5. Нажмите "Создать" под системными переменными.
  6. введите имяpythonexe (или что угодно)
  7. в стоимостном выражении введите путь к питону (пример: C:\Python32\)
  8. Теперь отредактируйте переменную Path (в системной части) и добавьте %pythonexe%;в конец того, что уже есть

IDK, почему это работает, но это помогло мне.

затем попробуйте ввести «python» в командную строку, и все должно работать!


Редактировать:

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

JustGage
источник
14

Вы можете установить путь из текущего окна cmd с помощью PATH =команды. Это добавит его только для текущего экземпляра cmd. если вы хотите добавить его навсегда, вы должны добавить его в системные переменные. (Компьютер> Расширенные настройки системы> Переменные среды)

Вы должны перейти к своему экземпляру cmd и вставить PATH=C:/Python27/;%PATH%.

Анируд Раманатан
источник
Это решение сработало для меня на Win7 Pro. Протестировано с помощью echo %PATH~%.
Игорь
11

Убедитесь, что вы не добавили пробел перед новым каталогом.

Хорошее: старое; старое; старое; новое

Плохо: старый; старый; старый; новый

Майк Патерас
источник
9

Python поставляется с небольшой утилитой, которая делает именно это . Из командной строки запустите:

c:\python27\tools\scripts\win_add2path.py

Убедитесь, что вы закрыли командное окно (с exitпомощью кнопки или) и открыли его снова.

Уди
источник
1
Что касается меня, он меняет регистр, но ни одно приложение не будет затронуто, пока вы вручную не подтвердите изменения через диалоговое окно стандартного графического интерфейса. Перезапуск приложения не помогает. Похоже, тоже нужна какая-то трансляция.
Павел Власов
Это сработало для меня на 8.1 и кажется проще, чем другие подходы. Откроется окно / окно с вопросом, что вы хотите запустить. Выберите «Другое», а затем вернитесь к c: \ python27 и выберите исполняемый файл python (.exe). Эффект кажется постоянным, поэтому вам нужно сделать это только один раз. Вам нужно будет запустить win_add2path.py для каждого пользователя, но вы не получите это поле после первого раза.
user2099484
8

Следующая программа добавит путь к исполняемому файлу python и сценарии вложенного каталога (где, например, установлены pip и easy_install) в вашу среду. Он находит путь к исполняемому файлу python из раздела реестра, связывающего расширение .py. Он удалит старые пути Python в вашей среде. Также работает с XP (и, вероятно, Vista). Он использует только модули, которые поставляются с базовым установщиком Windows.

# coding: utf-8

import sys
import os
import time
import _winreg
import ctypes

def find_python():
    """
    retrieves the commandline for .py extensions from the registry
    """
    hKey = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT,
                           r'Python.File\shell\open\command')
    # get the default value
    value, typ = _winreg.QueryValueEx (hKey, None)
    program = value.split('"')[1]
    if not program.lower().endswith(r'\python.exe'):
        return None
    return os.path.dirname(program)

def extend_path(pypath, remove=False, verbose=0, remove_old=True,
                script=False):
    """
    extend(pypath) adds pypath to the PATH env. variable as defined in the
    registry, and then notifies applications (e.g. the desktop) of this change.
    !!! Already opened DOS-Command prompts are not updated. !!!
    Newly opened prompts will have the new path (inherited from the 
    updated windows explorer desktop)
    options:
    remove (default unset), remove from PATH instead of extend PATH
    remove_old (default set), removes any (old) python paths first
    script (default unset), try to add/remove the Scripts subdirectory 
        of pypath (pip, easy_install) as well
    """
    _sd = 'Scripts' # scripts subdir
    hKey = _winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE,
               r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
               0, _winreg.KEY_READ | _winreg.KEY_SET_VALUE)

    value, typ = _winreg.QueryValueEx (hKey, "PATH")
    vals = value.split(';')
    assert isinstance(vals, list)
    if not remove and remove_old:
        new_vals = []
        for v in vals:
            pyexe = os.path.join(v, 'python.exe')
            if v != pypath and os.path.exists(pyexe):
                if verbose > 0:
                    print 'removing from PATH:', v
                continue
            if script and v != os.path.join(pypath, _sd) and \
               os.path.exists(v.replace(_sd, pyexe)):
                if verbose > 0:
                    print 'removing from PATH:', v
                continue
            new_vals.append(v)
        vals = new_vals
    if remove:
        try:
            vals.remove(pypath)
        except ValueError:
            if verbose > 0:
                print 'path element', pypath, 'not found'
            return
        if script:
            try:
                vals.remove(os.path.join(pypath, _sd))
            except ValueError:
                pass
            print 'removing from PATH:', pypath
    else:
        if pypath in vals:
            if verbose > 0:
                print 'path element', pypath, 'already in PATH'
            return
        vals.append(pypath)
        if verbose > 1:
            print 'adding to PATH:', pypath
        if script:
            if not pypath + '\\Scripts' in vals:
                vals.append(pypath + '\\Scripts')
            if verbose > 1:
                print 'adding to PATH:', pypath + '\\Scripts'
    _winreg.SetValueEx(hKey, "PATH", 0, typ, ';'.join(vals) )
    _winreg.SetValueEx(hKey, "OLDPATH", 0, typ, value )
    _winreg.FlushKey(hKey)
    # notify other programs
    SendMessage = ctypes.windll.user32.SendMessageW
    HWND_BROADCAST = 0xFFFF
    WM_SETTINGCHANGE = 0x1A
    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment')
    if verbose > 1:
        print 'Do not forget to restart any command prompts'

if __name__ == '__main__':
    remove = '--remove' in sys.argv
    script = '--noscripts' not in sys.argv
    extend_path(find_python(), verbose=2, remove=remove, script=script)
Антон
источник
Это испортило мою PATH. Вот исправленная версия (я также удалил remove_old, что невозможно * исправить): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * да
Аур Сараф
6

Я знаю, что этот пост старый, но я хотел бы добавить, что решения предполагают права администратора. Если у вас их нет, вы можете:

Перейдите в панель управления, введите путь (теперь это Windows 7, поэтому он находится в поле поиска) и нажмите «Изменить переменные среды для вашей учетной записи». Теперь вы увидите диалоговое окно «Переменная среды» с «Пользовательскими переменными» вверху и «Системными переменными» внизу.

Вы можете, как пользователь, нажать верхнюю кнопку «Создать» и добавить:

Имя переменной: PATH
Значение переменной: C: \ Python27

(нигде нет пробелов) и нажмите ОК. После перезапуска командной строки любой PATH в пользовательских переменных добавляется в конец системного пути. Никаким другим способом он не заменяет PATH.

Если вы хотите настроить конкретный полный путь, вам лучше создать командный файл, подобный этому маленькому:

@echo off
PATH C:\User\Me\Programs\mingw\bin;C:\User\Me\Programs;C:\Windows\system32
title Compiler Environment - %Username%@%Computername%
cmd

Назовите его "compiler.bat" или как-нибудь иначе и дважды щелкните его, чтобы запустить. Или ссылку на него. Или приколоть и т.д ...

Carveone
источник
6

Вам необходимо внести изменения в вашу системную переменную
- Щелкните правой кнопкой мыши «Мой компьютер»
- Щелкните «Свойства»
- Щелкните «Дополнительные параметры системы» на боковой панели
- Щелкните Переменная среды - Вы увидите два раздела пользователя. переменная и системная переменная
- В разделе системных переменных найдите переменную «Путь», нажмите «Изменить» и добавьте
"C:\Python27;"(без кавычек), сохраните ее
- Теперь откройте командную строку, введите «путь», нажмите Enter, вы увидите, что переменная пути была изменена
- Теперь введите, python --versionвы увидите версию Python

И это сделано

Авинаш Агравал
источник
5

Для тех, кто пытается добиться этого с помощью Python 3.3+, установщик Windows теперь включает возможность добавить python.exe в путь поиска системы. Подробнее читайте в документации .

Андреас Бергстрём
источник
1
Это то, что я использовал, потому что мне не удалось найти точный путь установки. Запустите установщик, нажмите «Изменить», а затем в разделе «Дополнительные функции» нажмите «Далее», затем установите флажок, чтобы добавить Python в системный путь, и нажмите «Готово».
Rishi
4

Работа с переменными среды Windows - всегда ужасный опыт. Недавно я нашел замечательный инструмент под названием Rapid Environment Editor, который предоставляет удивительно простой графический интерфейс для управления ими.

Если вы используете шоколадный, вы можете установить его с помощью choco install rapidee. В противном случае посетите http://www.rapidee.com/en/download.

Перечитывая это, это звучит как заплаченный шилл, но я клянусь, что нет! Какое-то время это была одна из самых полезных утилит в моем наборе инструментов, и я удивлен, что никто об этом не знает.

Роб Х
источник
3

Если Python был установлен с другой программой, такой как ArcGIS 10.1 в моем случае, вы также должны включить любые дополнительные папки, ведущие к python.exe, в свои переменные среды.

Итак, мои переменные среды выглядят так:

Системные переменные> Путь> добавить ;C:\Python27\ArcGIS10.1

геоминированный
источник
2

Этот вопрос довольно старый, но я столкнулся с аналогичной проблемой, и моего конкретного решения здесь не было:

Убедитесь, что в вашем PATH нет папки, которой не существует.

В моем случае у меня была куча папок по умолчанию (Windows, Powershell, Sql Server и т. Д.), А затем обычная, C:\binкоторую я обычно использую, а затем различные другие настройки, такие как c:\python17и т. Д. Оказывается, процессор cmd обнаружил, что c:\binне не существует, а затем прекратили обработку остальной части переменной.

Кроме того, не знаю, заметил бы я это без менеджера PATH . Это красиво подчеркнуло тот факт, что этот элемент недействителен.

Крис Филлипс
источник
2

Я только что установил Python 3.3 в Windows 7, используя опцию «добавить python в PATH».

В переменной PATH установщик автоматически добавил последнюю обратную косую черту : C:\Python33\ и поэтому он не работал в командной строке (я пытался закрыть / открыть приглашение несколько раз)

Я удалил последнюю обратную косую черту, и все заработало:C:\Python33

Спасибо Раму Нарасимхану за совет №4!

Арно
источник
2

Я организовал свою переменную среды python таким образом в 64-разрядной версии Win7 с помощью cmd.

Я установил переменную PYTHONPATHчерез меню переменных среды окон и добавил %PYTHONPATH%к PATHпеременной:

...;%PYTHONPATH%

Оболочка cmd правильно расширяет переменную до следующего:

C:\>echo %PYTHONPATH%
C:\python27;c:\python27\lib;C:\python27\scripts

Не забудьте перезапустить командную оболочку после изменения PATH.

Мишель Лавати
источник
0

напишите это в командной строке:

set Path=%path%

Замените% path% на путь к вашей папке Python Пример:

set Path=C:/Python27
Skiller Dz
источник
-2

Если вы разочаровались, установив путь для python, просто загрузите новую версию python, удалите старую версию python, и при установке новой версии он спросит, следует ли установить отметку пути и установить

это лучший способ

Паван Пурохит
источник