Hinzufügen von Python Path unter Windows 7

138

Ich habe versucht, den Python-Pfad unter Windows 7 zur Befehlszeile hinzuzufügen, aber unabhängig von der Methode, die ich versuche, scheint nichts zu funktionieren. Ich habe den setBefehl verwendet und versucht, ihn über die Eingabeaufforderung "Umgebungsvariablen bearbeiten" usw. hinzuzufügen.

Wenn ich den Befehl set in der Befehlszeile ausführe, wird dies aufgelistet

python = c:\python27

Der Python-Befehl wird jedoch immer noch nicht erkannt.

Das Lesen der Dokumentation und verschiedener anderer Quellen schien nicht zu helfen.

Bearbeiten: Um dies weiter zu verdeutlichen, habe ich den Pfad der ausführbaren Python-Datei an PATH in der Eingabeaufforderung der Bearbeitungsumgebung angehängt. Scheint nicht zu funktionieren.

Rogerklutz
quelle
Liegt die ausführbare Datei in diesem Verzeichnis? Gibt es darin kein bin-Verzeichnis?
Anirudh Ramanathan
@ anirudh4444 Nein, es ist in diesem Verzeichnis ...
Rogerklutz
Sie können beide GUIund Command LineOptionen von hier erhalten stackoverflow.com/a/38141751/5409601
Rafayet Ullah
Obwohl dies für Sie nicht gültig ist, können Sie mit dem Python 3.6 Windows Installer (und möglicherweise früheren Versionen) Ihre Installation "anpassen" und es gibt ein Kontrollkästchen, mit dem Sie Python zu Ihrem Pfad hinzufügen können.
Paulhauner

Antworten:

266
  1. Halten Winund drücken Pause.
  2. Klicken Sie auf Erweiterte Systemeinstellungen.
  3. Klicken Sie auf Umgebungsvariablen.
  4. ;C:\python27An die PathVariable anhängen .
  5. Eingabeaufforderung neu starten.
melhosseiny
quelle
2
Ja, das habe ich schon gemacht. Tut mir leid, wenn ich das in der ursprünglichen Frage nicht klarer gemacht habe
Rogerklutz
11
Stellen Sie sicher, dass Ihre Python- und Pfadvariablen keine Leerzeichen enthalten.
Yossi
4
@rogerklutz: Stellen Sie einfach sicher, dass Sie der bereits vorhandenen PATH-Variablen "; C: \ python27" hinzufügen und keine neue Variable mit "C: \ python27" als Wert erstellen.
Wassimans
5
In vielen Fällen müssen Sie sich nach dem Festlegen der Pfadvariablen auch abmelden und wieder anmelden.
dk123
Ich hatte ein ähnliches Problem und alles andere als Schritt 5 getan. Vielen Dank, dass Sie das aufgenommen haben.
ReiMasuro
112

Beim Festlegen von Umgebungsvariablen in Windows habe ich bei vielen, vielen Gelegenheiten einen Fehler gemacht. Ich dachte, ich sollte ein paar meiner Fehler in der Vergangenheit hier teilen, in der Hoffnung, dass es jemandem helfen könnte. (Diese gelten für alle Umgebungsvariablen, nicht nur beim Festlegen des Python-Pfads.)

Achten Sie auf diese möglichen Fehler:

  1. Beenden Sie Ihr Shell-Fenster und öffnen Sie es erneut: Sobald Sie Änderungen an den UMWELT-Variablen vorgenommen haben, müssen Sie das Fenster, in dem Sie es testen , neu starten .
  2. KEINE SPACES beim Einstellen der Variablen. ;C:\Python27Stellen Sie sicher, dass Sie das OHNE Leerzeichen hinzufügen . (Es ist üblich, C:\SomeOther; C:\Python27dass dieses Leerzeichen (␣) nach dem Semikolon nicht in Ordnung ist.)
  3. USE A Backslash , wenn die Rechtschreibung Ihrer vollständigen Pfad aus. Sie werden Schrägstriche sehen, wenn Sie es versuchen, echo $PATHaber nur Schrägstriche haben für mich funktioniert.
  4. Fügen Sie keinen letzten Backslash hinzu . Nur C:\Python27NICHTC:\Python27\

Hoffe das hilft jemandem.

Ram Narasimhan
quelle
1
Der Grund, warum ich diese Antwort gewählt habe, ist, dass der PFAD die meiste Zeit wegen eines dieser 4 Dinge kaputt geht. Der einfache Teil macht es richtig, der schwierige Teil merkt, wenn Sie es falsch gemacht haben!
Grettke
1
Der Befehl echo $pathist nur gültig, wenn Sie eine Bash-Shell unter Windows ausführen (z. B. MinGW). Die Windows-Eingabeaufforderung lautetecho %path%
Bruce Peterson
2
Ich habe das nachlaufende Spiel nicht als problematisch empfunden. Vermisse ich etwas
Mystrdat
51

Öffnen Sie cmd .exe mit Administratorrechten (Rechtsklick auf App). Geben Sie dann Folgendes ein:

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

Denken Sie daran, mit einem Semikolon zu enden und keinen abschließenden Schrägstrich einzufügen.

Kenichi
quelle
3
+ 1- Damit können Sie dem Pfad hinzufügen, ohne Administratorrechte zu benötigen. Ich bin mir jedoch nicht sicher, ob% path% benötigt wird. Auf meinem Windows 7-System verfügen neue Cmd-Fenster jetzt über zwei Kopien der vorherigen Pfade.
Paul Lynch
32

Ich habe seit langer Zeit ein Problem damit. Ich habe es auf jede erdenkliche Weise zu meinem Weg hinzugefügt, aber hier ist, was schließlich für mich funktioniert hat:

  1. Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz".
  2. Klicken Sie auf "Eigenschaften"
  3. Klicken Sie im Seitenbereich auf "Erweiterte Systemeinstellungen"
  4. Klicken Sie auf "Umgebungsvariablen".
  5. Klicken Sie unter Systemvariablen auf "Neu"
  6. im Namen eingeben pythonexe (oder alles was Sie wollen)
  7. Geben Sie als Wert den Pfad zu Ihrer Python ein (Beispiel:C:\Python32\ )
  8. Bearbeiten Sie nun die Pfadvariable (im Systemteil) und fügen Sie %pythonexe%;am Ende das hinzu , was bereits vorhanden ist

IDK, warum das funktioniert, aber es hat für mich funktioniert.

Versuchen Sie dann, "Python" in Ihre Befehlszeile einzugeben, und es sollte funktionieren!


Bearbeiten:

In letzter Zeit habe ich dieses Programm verwendet, das ziemlich gut zu funktionieren scheint. Es gibt auch dieses, das auch ziemlich gut aussieht, obwohl ich es nie ausprobiert habe.

JustGage
quelle
14

Mit dem Befehl können Sie den Pfad aus dem aktuellen cmd-Fenster festlegen PATH =. Dadurch wird es nur für die aktuelle cmd-Instanz hinzugefügt. Wenn Sie es dauerhaft hinzufügen möchten, sollten Sie es zu Systemvariablen hinzufügen. (Computer> Erweiterte Systemeinstellungen> Umgebungsvariablen)

Sie würden zu Ihrer cmd-Instanz gehen und eingeben PATH=C:/Python27/;%PATH%.

Anirudh Ramanathan
quelle
Diese Lösung funktionierte für mich unter Win7 Pro. Getestet mit echo %PATH~%.
Igor
11

Stellen Sie sicher, dass Sie vor dem neuen Verzeichnis kein Leerzeichen einfügen.

Gut: alt, alt, alt, neu

Schlecht: alt; alt; alt; Neu

Mike Pateras
quelle
9

Python wird mit einem kleinen Dienstprogramm geliefert, das genau dies tut . Führen Sie über die Befehlszeile Folgendes aus:

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

Stellen Sie sicher, dass Sie das Befehlsfenster (mit exitoder die Schaltfläche Schließen) schließen und erneut öffnen.

Udi
quelle
1
Ich ändere zwar das Register, aber keine App ist betroffen, bis Sie die Änderungen manuell über den Standard-GUI-Dialog bestätigen. Ein Neustart einer App hilft nicht. Es sieht so aus, als ob auch eine Art Rundfunk benötigt wird.
Pavel Vlasov
Dies hat bei mir unter 8.1 funktioniert und scheint einfacher zu sein als bei anderen Ansätzen. Ein Fenster / eine Box öffnet sich und fragt, was Sie ausführen möchten. Wählen Sie Andere aus, navigieren Sie zurück zu c: \ python27 und wählen Sie die ausführbare Python-Datei (.exe) aus. Der Effekt scheint dauerhaft zu sein, Sie müssen dies also nur einmal tun. Sie müssen win_add2path.py für jeden Benutzer ausführen, aber Sie erhalten die Box nicht nach dem ersten Mal.
user2099484
8

Das folgende Programm fügt Ihrer Umgebung den ausführbaren Python-Pfad und die Subdir-Skripte (in denen z. B. pip und easy_install installiert sind) hinzu. Es findet den Pfad zur ausführbaren Python-Datei aus dem Registrierungsschlüssel, der die Erweiterung .py bindet. Es werden alte Python-Pfade in Ihrer Umgebung entfernt. Funktioniert auch mit XP (und wahrscheinlich Vista). Es werden nur Module verwendet, die mit dem grundlegenden Windows-Installationsprogramm geliefert werden.

# 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
quelle
Das hat meinen Pfad ruiniert. Hier ist eine feste Version (ich habe auch remove_old entfernt, was unmöglich ist *, um es richtig zu machen): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * yes
Aur Saraf
6

Ich weiß, dass dieser Beitrag alt ist, aber ich möchte hinzufügen, dass die Lösungen Administratorrechte voraussetzen. Wenn Sie diese nicht haben, können Sie:

Gehen Sie zur Systemsteuerung, geben Sie path ein (dies ist jetzt Windows 7, also im Suchfeld) und klicken Sie auf "Umgebungsvariablen für Ihr Konto bearbeiten". Sie sehen nun das Dialogfeld Umgebungsvariable mit "Benutzervariablen" oben und "Systemvariablen" unten.

Sie können als Benutzer auf die obere Schaltfläche "Neu" klicken und Folgendes hinzufügen:

Variablenname: PATH
Variablenwert: C: \ Python27

(keine Leerzeichen) und klicken Sie auf OK. Nach dem Neustart Ihrer Eingabeaufforderung wird jeder Pfad in den Benutzervariablen angehängt Pfad an das Ende des . Es ersetzt den Pfad nicht auf andere Weise.

Wenn Sie einen bestimmten vollständigen Pfad einrichten möchten, sollten Sie eine Batchdatei wie diese erstellen:

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

Nennen Sie es "compiler.bat" oder was auch immer und doppelklicken Sie, um es zu starten. Oder verlinken Sie darauf. Oder stecken Sie es etc ...

Carveone
quelle
6

Sie müssen Änderungen an Ihrer Systemvariablen vornehmen.
- Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz".
- Klicken Sie auf "Eigenschaften".
- Klicken Sie im Seitenbereich auf "Erweiterte Systemeinstellungen".
- Klicken Sie auf Umgebungsvariable. - Sie werden zwei Benutzerabschnitte anzeigen Variable und Systemvariable
- Unter Systemvariablen Abschnitt Suche für die Variable ‚Pfad‘ auf bearbeiten klicken und fügen Sie
"C:\Python27;"(ohne Anführungszeichen) ein außer
- jetzt offen Befehlszeile Typ ‚Pfad‘ 'Enter ' drücken Sie Pfadvariablen modifiziert wurde , wird sehen
- Geben Sie nun einpython --version Sie Sie sehen die Python-Version

Und es ist geschafft

Avinash Agrawal
quelle
5

Für alle, die dies mit Python 3.3+ erreichen möchten, enthält das Windows-Installationsprogramm jetzt eine Option zum Hinzufügen von python.exe zum Systemsuchpfad. Lesen Sie mehr in den Dokumenten .

Andreas Bergström
quelle
1
Dies ist, was ich verwendet habe, weil ich Probleme hatte, den genauen Pfad der Installation zu finden. Starten Sie das Installationsprogramm, klicken Sie auf "Ändern" und dann in den optionalen Funktionen auf "Weiter". Aktivieren Sie dann das Kontrollkästchen, um Python zum Systempfad hinzuzufügen, und klicken Sie auf "Fertig stellen".
Rishi
4

Die Arbeit mit Windows-Umgebungsvariablen ist immer eine schreckliche Erfahrung. Kürzlich habe ich ein erstaunliches Tool namens Rapid Environment Editor gefunden, das eine unglaublich einfache Benutzeroberfläche für die Verwaltung bietet.

Wenn Sie schokoladig verwenden, können Sie es mit installieren choco install rapidee. Andernfalls werfen Sie einen Blick auf http://www.rapidee.com/en/download

Wenn ich das noch einmal lese, klingt es wie ein bezahlter Schill, aber ich schwöre, ich bin es nicht! Es ist seit einiger Zeit eines der nützlichsten Dienstprogramme in meinem Toolkit und ich bin überrascht, dass niemand davon zu wissen scheint.

Rob H.
quelle
3

Wenn Python mit einem anderen Programm wie in meinem Fall ArcGIS 10.1 installiert wurde, müssen Sie auch zusätzliche Ordner, die zur Datei python.exe führen, in Ihre Umgebungsvariablen aufnehmen.

Meine Umgebungsvariablen sehen also so aus:

Systemvariablen> Pfad> Hinzufügen ;C:\Python27\ArcGIS10.1

geominded
quelle
2

Diese Frage ist ziemlich alt, aber ich bin gerade auf ein ähnliches Problem gestoßen, und meine spezielle Lösung wurde hier nicht aufgeführt:

Stellen Sie sicher, dass Ihr PATH keinen Ordner enthält, der nicht vorhanden ist.

In meinem Fall hatte ich eine Reihe von Standard - Ordner (Windows, Powershell, SQL Server, etc) und dann eine individuelle , C:\bindass ich in der Regel verwenden, und dann verschiedene andere Verbesserungen wie c:\python17etc. Es stellt sich heraus , dass der cmd - Prozessor, wurde zu finden c:\bindidn nicht vorhanden und dann die Verarbeitung des Restes der Variablen gestoppt.

Ich weiß auch nicht, dass ich das ohne PATH Manager jemals bemerkt hätte . Es hat die Tatsache hervorgehoben, dass dieses Element ungültig war.

Chris Phillips
quelle
2

Ich habe gerade Python 3.3 unter Windows 7 mit der Option "Python zu PATH hinzufügen" installiert.

In der PATH-Variablen fügte das Installationsprogramm automatisch einen letzten Backslash hinzu : C:\Python33\ und so funktionierte es nicht an der Eingabeaufforderung (ich habe mehrmals versucht, die Eingabeaufforderung zu schließen / zu öffnen).

Ich habe den letzten Backslash entfernt und dann hat es funktioniert:C:\Python33

Danke Ram Narasimhan für deinen Tipp # 4!

Arnaud
quelle
2

Ich habe meine Python-Umgebungsvariable wie folgt unter Win7 64-Bit mit cmd organisiert.

Ich habe die Variable PYTHONPATHüber das Umgebungsvariablenmenü von Windows festgelegt und %PYTHONPATH%der PATHVariablen hinzugefügt :

...;%PYTHONPATH%

Die cmd-Shell erweitert die Variable korrekt auf Folgendes:

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

Vergessen Sie nicht, die cmd-Shell nach dem Ändern von PATH neu zu starten.

Michel Lawaty
quelle
0

Schreiben Sie das auf Ihre Eingabeaufforderung:

set Path=%path%

Ersetzen Sie% path% durch den Pfad Ihres Python-Ordners. Beispiel:

set Path=C:/Python27
Skiller Dz
quelle
-2

Wenn Sie durch das Festlegen des Pfads für Python frustriert sind, laden Sie einfach die neue Version von Python herunter, deinstallieren Sie die ältere Version von Python und fragen Sie bei der Installation der neuen Version, ob Sie den Pfad festlegen und diesen installieren sollen

Es ist der beste Weg

Pavan Purohit
quelle