Dodawanie ścieżki Pythona w systemie Windows 7

138

Próbowałem dodać ścieżkę Pythona do wiersza poleceń w systemie Windows 7, ale bez względu na metodę, którą próbuję, nic nie działa. Użyłemset polecenia, próbowałem go dodać za pomocą polecenia Edytuj zmienne środowiskowe itp.

Co więcej, jeśli uruchomię polecenie set w wierszu poleceń, wyświetli to

python = c:\python27

Jednak nadal nie rozpoznaje polecenia Pythona.

Czytanie dokumentacji i różnych innych źródeł wydawało się nie pomagać.

Edycja: Aby wyjaśnić dalej, dołączyłem ścieżkę pliku wykonywalnego Pythona do PATH w wierszu polecenia środowiska edycji. Nie wydaje się działać.

rogerklutz
źródło
Czy plik wykonywalny znajduje się w tym katalogu? Czy nie ma w tym katalogu bin?
Anirudh Ramanathan
@ anirudh4444 Nie, jest w tym katalogu ...
rogerklutz
Możesz uzyskać obie opcje GUIi Command Lineopcję stąd stackoverflow.com/a/38141751/5409601
Rafayet Ullah
Chociaż nie jest to poprawne dla Ciebie, dzięki Instalatorowi Python 3.6 Windows (i potencjalnie wcześniejszym wersjom) możesz wybrać opcję „Dostosuj” swoją instalację i istnieje pole wyboru umożliwiające dodanie Pythona do ścieżki.
paulhauner

Odpowiedzi:

266
  1. Przytrzymaj Wini naciśnij Pause.
  2. Kliknij opcję Zaawansowane ustawienia systemu.
  3. Kliknij opcję Zmienne środowiskowe.
  4. Dołącz ;C:\python27do Pathzmiennej.
  5. Uruchom ponownie wiersz polecenia.
melhosseiny
źródło
2
Tak, już to zrobiłem. Przepraszam, jeśli nie
wyjaśniłem
11
Upewnij się, że nie masz żadnych spacji w zmiennych Python i path.
Yossi
4
@rogerklutz: Po prostu upewnij się, że dodajesz „; C: \ python27” do zmiennej PATH, która już istnieje, i nie tworzysz nowej zmiennej z „C: \ python27” jako wartością.
wassimans
5
W wielu przypadkach po ustawieniu zmiennej Path trzeba się wylogować i zalogować ponownie.
dk123,
Cierpiąc na podobny problem, zrobiłem wszystko oprócz kroku 5 ... Dziękuję za uwzględnienie tego.
ReiMasuro
112

Podczas ustawiania zmiennych środowiskowych w systemie Windows wiele, wiele razy się myliłem. Pomyślałem, że powinienem podzielić się tutaj kilkoma błędami z przeszłości, mając nadzieję, że może to komuś pomóc. (Dotyczy to wszystkich zmiennych środowiskowych, nie tylko podczas ustawiania ścieżki Pythona)

Uważaj na te możliwe błędy:

  1. Zabij i ponownie otwórz okno powłoki: Po wprowadzeniu zmian w Zmiennych ŚRODOWISKOWYCH musisz ponownie uruchomić okno, w którym je testujesz.
  2. NO SPACES podczas ustawiania Variables. Upewnij się, że dodajesz ;C:\Python27BEZ spacji. (Często C:\SomeOther; C:\Python27używa się tego spacji (␣) po średniku nie jest w porządku.)
  3. UŻYJ CIĘCIA DO TYŁU podczas określania pełnej ścieżki. Kiedy spróbujesz, zobaczysz ukośniki w przód, echo $PATHale tylko te w tył zadziałały.
  4. NIE DODAJ ostatniego odwrotnego ukośnika . Tylko C:\Python27NIEC:\Python27\

Mam nadzieję, że to komuś pomoże.

Ram Narasimhan
źródło
1
Powodem, dla którego wybrałem tę odpowiedź, jest to, że przez większość czasu get PATH jest zepsuty z powodu jednej z tych 4 rzeczy. Najłatwiejsza część robi to poprawnie, najtrudniejsza część polega na zauważeniu, kiedy zrobiłeś to nieprawidłowo!
grettke
1
Polecenie echo $pathjest poprawne tylko wtedy, gdy używasz powłoki bash w systemie Windows (np. MinGW). Polecenie wiersza polecenia systemu Windows toecho %path%
Bruce Peterson
2
Nie stwierdziłem, że końcowy luz jest problematyczny. Czy coś mi brakuje?
mystrdat
51

Otwórz cmd .exe z uprawnieniami administratora (kliknij prawym przyciskiem myszy aplikację). Następnie wpisz:

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

Pamiętaj, aby kończyć się średnikiem i nie umieszczaj na końcu ukośnika.

kenichi
źródło
3
+ 1 - Pozwala to dodać do ścieżki bez konieczności posiadania uprawnień administratora. Jednak nie jestem pewien, czy% path% jest potrzebny. W moim systemie Windows 7 nowe okna cmd mają teraz dwie kopie poprzednich ścieżek.
Paul Lynch
32

Miałem z tym problem przez długi czas. Dodałem to do mojej ścieżki w każdy możliwy sposób, ale oto, co w końcu zadziałało:

  1. Kliknij prawym przyciskiem myszy „Mój komputer”
  2. Kliknij „Właściwości”
  3. Kliknij „Zaawansowane ustawienia systemu” w panelu bocznym
  4. Kliknij „Zmienne środowiskowe”
  5. Kliknij „Nowy” poniżej zmiennych systemowych
  6. w nazwie wpisz pythonexe (lub cokolwiek chcesz)
  7. w wartości wprowadź ścieżkę do swojego Pythona (przykład:C:\Python32\ )
  8. Teraz edytuj zmienną Path (w części systemowej) i dodaj %pythonexe%;na koniec tego, co już tam jest

IDK, dlaczego to działa, ale zadziałało dla mnie.

następnie spróbuj wpisać „python” w swoim wierszu poleceń i powinno działać!


Edytować:

Ostatnio korzystam z tego programu, który wydaje się działać całkiem nieźle. Jest też ten, który wygląda całkiem nieźle, chociaż nigdy go nie próbowałem.

JustGage
źródło
14

Możesz ustawić ścieżkę z bieżącego okna cmd za pomocą PATH =polecenia. Spowoduje to dodanie go tylko do bieżącej instancji cmd. jeśli chcesz dodać go na stałe, powinieneś dodać go do zmiennych systemowych. (Komputer> Zaawansowane ustawienia systemu> Zmienne środowiskowe)

Możesz przejść do instancji cmd i wstawić PATH=C:/Python27/;%PATH%.

Anirudh Ramanathan
źródło
To rozwiązanie działało dla mnie na Win7 Pro. Testowane z echo %PATH~%.
Igor
11

Upewnij się, że nie dodałeś spacji przed nowym katalogiem.

Dobry: stary; stary; stary; nowy

Zły: stary; stary; stary; Nowy

Mike Pateras
źródło
9

Python jest wyposażony w małe narzędzie, które właśnie to robi . Z wiersza poleceń uruchom:

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

Upewnij się, że zamknąłeś okno poleceń (za pomocą exitlub przycisku zamykania) i otwórz je ponownie.

Udi
źródło
1
Jeśli chodzi o mnie, zmienia rejestr, ale żadna aplikacja nie zostanie zmieniona, dopóki ręcznie nie potwierdzisz zmian za pomocą standardowego okna dialogowego GUI. Ponowne uruchomienie aplikacji nie pomaga. Wygląda na to, że potrzebny jest również rodzaj transmisji.
Pavel Vlasov
To działało dla mnie w 8.1 i wydaje się łatwiejsze niż inne podejścia. Otworzy się okno / okno z pytaniem, co chcesz uruchomić. Wybierz opcję Inne, a następnie przejdź z powrotem do c: \ python27 i wybierz plik wykonywalny pythona (.exe). Efekt wydaje się trwały, więc wystarczy to zrobić tylko raz. Będziesz musiał uruchomić win_add2path.py dla każdego użytkownika, ale nie otrzymasz tego okna po raz pierwszy.
user2099484
8

Poniższy program doda ścieżkę do pliku wykonywalnego Pythona i podkatalog Skrypty (w którym są instalowane np. Pip i easy_install) do twojego środowiska. Znajduje ścieżkę do pliku wykonywalnego Pythona z klucza rejestru wiążącego rozszerzenie .py. Usunie stare ścieżki Pythona w twoim środowisku. Działa również z XP (i prawdopodobnie Vista). Używa tylko modułów, które są dostarczane z podstawowym instalatorem systemu 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)
Anthon
źródło
To zrujnowało moją ŚCIEŻKĘ. Oto poprawiona wersja (usunąłem również remove_old, co jest niemożliwe * do poprawienia ): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * tak
Aur Saraf
6

Wiem, że ten post jest stary, ale chciałbym dodać, że rozwiązania zakładają uprawnienia administratora. Jeśli ich nie masz, możesz:

Przejdź do panelu sterowania, wpisz ścieżkę (teraz jest to Windows 7, więc znajduje się w polu wyszukiwania) i kliknij „Edytuj zmienne środowiskowe dla swojego konta”. Zobaczysz teraz okno dialogowe Zmienne środowiskowe z „Zmiennymi użytkownika” na górze i „Zmiennymi systemowymi” poniżej.

Jako użytkownik możesz kliknąć górny przycisk „Nowy” i dodać:

Nazwa zmiennej: PATH
Wartość zmiennej: C: \ Python27

(bez spacji) i kliknij OK. Po ponownym uruchomieniu wiersza polecenia, dołączana jest dowolna PATH w zmiennych użytkownika na końcu ścieżki systemowej. W żaden inny sposób nie zastępuje PATH.

Jeśli chcesz skonfigurować określoną pełną ścieżkę, lepiej utwórz plik wsadowy, taki jak ten mały:

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

Nazwij go „compiler.bat” lub jakikolwiek inny i kliknij dwukrotnie, aby go uruchomić. Lub link do niego. Lub przypnij to itp ...

carveone
źródło
6

Musisz dokonać zmian w swojej zmiennej systemowej
- Kliknij prawym przyciskiem myszy „Mój komputer”
- Kliknij „Właściwości”
- Kliknij „Zaawansowane ustawienia systemu” w panelu bocznym
- Kliknij Zmienna środowiskowa - Pojawią się dwie sekcje użytkownika zmienna i zmienna systemowa
- W sekcji zmiennej systemowej wyszukaj zmienną `` Ścieżka '' kliknij edytuj i dodaj
"C:\Python27;"(bez cudzysłowów) zapisz ją
- Teraz otwórz wiersz poleceń wpisz `` ścieżka '' naciśnij klawisz Enter, zobaczysz zmienną ścieżki, która została zmodyfikowana
- Teraz wpiszpython --version , a zobaczysz wersję Pythona

I gotowe

Avinash Agrawal
źródło
5

Dla każdego, kto próbuje to osiągnąć za pomocą Pythona 3.3+, instalator Windows zawiera teraz opcję dodania python.exe do ścieżki wyszukiwania systemu. Przeczytaj więcej w dokumentacji .

Andreas Bergström
źródło
1
Właśnie tego użyłem, ponieważ miałem problem ze znalezieniem dokładnej ścieżki instalacji. Uruchom instalator, naciśnij `` Modyfikuj '', a następnie w Funkcje opcjonalne, kliknij Dalej, a następnie zaznacz pole, aby dodać Python do ścieżki systemowej i naciśnij Zakończ.
Rishi
4

Praca ze zmiennymi środowiskowymi systemu Windows jest zawsze okropnym doświadczeniem. Niedawno znalazłem niesamowite narzędzie o nazwie Rapid Environment Editor, które oferuje niesamowicie prosty interfejs graficzny do zarządzania nimi.

Jeśli używasz czekolady, możesz ją zainstalować za pomocą choco install rapidee. W przeciwnym razie spójrz na http://www.rapidee.com/en/download

Czytając to ponownie, brzmi to jak płatna szylinga, ale przysięgam, że nie! Od jakiegoś czasu jest to po prostu jedno z najbardziej przydatnych narzędzi w moim zestawie narzędzi i jestem zaskoczony, że nikt o tym nie wie.

Rob H.
źródło
3

Jeśli Python został zainstalowany z innym programem, takim jak ArcGIS 10.1 w moim przypadku, musisz również dołączyć wszelkie dodatkowe foldery, które prowadzą do python.exe w zmiennych środowiskowych.

Więc moje zmienne środowiskowe wyglądają tak:

Zmienne systemowe> Ścieżka> dodaj ;C:\Python27\ArcGIS10.1

geominded
źródło
2

To pytanie jest dość stare, ale właśnie napotkałem podobny problem i moje konkretne rozwiązanie nie zostało tutaj wymienione:

Upewnij się, że w swojej PATH nie masz folderu, który nie istnieje.

W moim przypadku miałem kilka domyślnych folderów (Windows, Powershell, Sql Server itp.), A następnie niestandardowy C:\bin, którego zwykle używam, a następnie różne inne poprawki, takie jak c:\python17itp. Okazuje się, że procesor cmd c:\binwykrył, że nie nie istnieje, a następnie przestał przetwarzać resztę zmiennej.

Nie wiem też, czy kiedykolwiek bym to zauważył bez menedżera PATH . Ładnie podkreślał fakt, że przedmiot był nieważny.

Chris Phillips
źródło
2

Właśnie zainstalowałem Python 3.3 na Windows 7 używając opcji "dodaj python do PATH".

W zmiennej PATH instalator automatycznie dodał końcowy ukośnik odwrotny : C:\Python33\ więc nie działał w wierszu poleceń (próbowałem kilkakrotnie zamknąć / otworzyć monit)

Usunąłem ostatni lewy ukośnik i zadziałało:C:\Python33

Dzięki Ram Narasimhan za wskazówkę # 4!

Arnaud
źródło
2

Zorganizowałem moją zmienną środowiskową Pythona w ten sposób pod Win7 64-bit za pomocą cmd.

Ustawiłem zmienną PYTHONPATHpoprzez menu zmiennych środowiskowych okien i dodałem %PYTHONPATH%do PATHzmiennej:

...;%PYTHONPATH%

Powłoka cmd poprawnie rozwija zmienną do tego:

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

Nie zapomnij o ponownym uruchomieniu powłoki cmd po zmianie PATH.

Michel Lawaty
źródło
0

napisz to w wierszu polecenia:

set Path=%path%

Zastąp% path% ścieżką swojego folderu w języku Python Przykład:

set Path=C:/Python27
Skiller Dz
źródło
-2

Jeśli jesteś sfrustrowany ustawieniem ścieżki dla pythona, po prostu pobierz nową wersję pythona odinstaluj starszą wersję pythona i podczas instalowania nowej wersji zapyta, czy ustawić ścieżkę, zaznacz to i zainstaluj

to najlepszy sposób

Pavan Purohit
źródło