Aggiunta di Python Path su Windows 7


138

Ho cercato di aggiungere il percorso Python alla riga di comando su Windows 7, ma non importa quale metodo provo, nulla sembra funzionare. Ho usato il setcomando, ho provato ad aggiungerlo tramite il prompt Modifica variabili di ambiente ecc.

Inoltre, se eseguo il comando set sulla riga di comando, questo lo elenca

python = c:\python27

Tuttavia non riconosce ancora il comando Python.

Leggere la documentazione e varie altre fonti non sembra essere d'aiuto.

Modifica: solo per chiarire ulteriormente, ho aggiunto il percorso dell'eseguibile Python a PATH nel prompt di modifica dell'ambiente. Non sembra funzionare.


L'eseguibile si trova in quella directory? Non c'è qualche directory bin all'interno di quello?
Anirudh Ramanathan,

@ anirudh4444 No, è in quella directory ...
rogerklutz l'

È possibile ottenere sia GUIe Command Linel'opzione da qui stackoverflow.com/a/38141751/5409601
Rafayet Ullah

Sebbene non sia valido per te, con Windows Installer Python 3.6 (e versioni potenzialmente precedenti) puoi scegliere di "Personalizzare" l'installazione e c'è una casella di controllo per aggiungere Python al tuo percorso.
paulhauner,

Risposte:


266
  1. Tenere Winpremuto e premere Pause.
  2. Fai clic su Impostazioni di sistema avanzate.
  3. Fai clic su Variabili d'ambiente.
  4. Aggiungi ;C:\python27alla Pathvariabile.
  5. Riavvia il prompt dei comandi.

2
Sì, l'ho già fatto. Scusate se non ho
chiarito la

11
Assicurati di non avere spazi nelle variabili python e path.
Yossi,

4
@rogerklutz: Assicurati solo di aggiungere "; C: \ python27" alla variabile PATH già esistente e di non creare una nuova variabile con "C: \ python27" come valore.
Wassimans,

5
In molti casi, è necessario disconnettersi e riconnettersi dopo aver impostato la variabile Path.
dk123,

Soffrendo di un problema simile, avevo fatto tutto tranne il passaggio 5 ... Grazie per averlo incluso.
ReiMasuro,

112

Quando ho impostato le variabili ambientali in Windows, ho sbagliato molte, molte occasioni. Ho pensato di condividere qui alcuni dei miei errori passati sperando che potesse aiutare qualcuno. (Si applicano a tutte le variabili ambientali, non solo quando si imposta Python Path)

Fai attenzione a questi possibili errori:

  1. Uccidi e riapri la finestra della shell: dopo aver apportato una modifica alle variabili AMBIENTALI, devi riavviare la finestra su cui la stai testando.
  2. NESSUN SPAZIO durante l'impostazione delle variabili. Assicurati di aggiungere ;C:\Python27SENZA spazi. (È comune provare C:\SomeOther; C:\Python27quello spazio (␣) dopo il punto e virgola non va bene.)
  3. USA UNO SLASH INDIETRO quando scrivi il tuo percorso completo. Vedrai le barre in avanti quando provi, echo $PATHma solo le barre all'indietro hanno funzionato per me.
  4. NON AGGIUNGERE una barra rovesciata finale . Solo C:\Python27NONC:\Python27\

Spero che questo aiuti qualcuno.


1
Il motivo per cui ho scelto questa risposta è che la maggior parte delle volte il PATH viene rotto a causa di una di queste 4 cose. La parte facile lo sta facendo correttamente, la parte difficile sta notando quando lo hai fatto in modo errato!
Grettke,

1
Il comando echo $pathè valido solo se si esegue una shell bash sotto Windows (ad es. MinGW). Il comando del prompt dei comandi di Windows èecho %path%
Bruce Peterson,

2
Non ho trovato problematica la reazione finale. Mi sto perdendo qualcosa?
mystrdat,

51

Apri cmd .exe con i privilegi di amministratore (fai clic con il pulsante destro del mouse sull'app). Quindi digitare:

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

Ricorda di terminare con un punto e virgola e non includere una barra finale.


3
+ 1- Questo ti consente di aggiungere al percorso senza i privilegi di amministratore. Tuttavia, non sono sicuro che sia necessario% path%. Sul mio sistema Windows 7, le nuove finestre cmd ora hanno due copie dei percorsi precedenti.
Paul Lynch,

32

Ho avuto un problema con questo per molto tempo. L'ho aggiunto al mio percorso in ogni modo a cui potevo pensare, ma ecco cosa alla fine ha funzionato per me:

  1. Fare clic destro su "Risorse del computer"
  2. Fai clic su "Proprietà"
  3. Fai clic su "Impostazioni di sistema avanzate" nel pannello laterale
  4. Fai clic su "Variabili d'ambiente"
  5. Fai clic su "Nuovo" sotto le variabili di sistema
  6. nel nome inseriscipythonexe (o qualsiasi cosa tu voglia)
  7. di valore digitare il percorso del pitone (ad esempio: C:\Python32\)
  8. Ora modifica la variabile Path (nella parte del sistema) e aggiungi %pythonexe%;alla fine ciò che è già lì

IDK perché questo funziona ma ha funzionato per me.

quindi prova a digitare "python" nella riga di comando e dovrebbe funzionare!


Modificare:

Ultimamente sto usando questo programma che sembra funzionare abbastanza bene. C'è anche questo che sembra abbastanza buono, anche se non l'ho mai provato.



14

È possibile impostare il percorso dalla finestra cmd corrente utilizzando il PATH =comando Ciò lo aggiungerà solo per l'istanza cmd corrente. se si desidera aggiungerlo in modo permanente, è necessario aggiungerlo alle variabili di sistema. (Computer> Impostazioni di sistema avanzate> Variabili d'ambiente)

Andresti alla tua istanza cmd e inseriresti PATH=C:/Python27/;%PATH%.


Questa soluzione ha funzionato per me su Win7 Pro. Testato con echo %PATH~%.
Igor,

11

Assicurati di non aggiungere uno spazio prima della nuova directory.

Buono: vecchio; vecchio; vecchio; nuovo

Cattivo: vecchio; vecchio; vecchio; nuovo


9

Python viene fornito con una piccola utility che fa proprio questo . Dalla riga di comando eseguire:

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

Assicurati di chiudere la finestra di comando (con exito il pulsante Chiudi) e aprirla di nuovo.


1
Per quanto mi riguarda, cambia il registro, ma nessuna app sarà interessata fino a quando non confermerai manualmente le modifiche tramite la finestra di dialogo della GUI std. Il riavvio di un'app non aiuta. Sembra che sia necessaria anche una specie di trasmissione.
Pavel Vlasov,

Questo ha funzionato per me su 8.1 e sembra più facile di altri approcci. Si apre una finestra / finestra che chiede cosa si desidera eseguire. Selezionare Altro, quindi tornare a c: \ python27 e selezionare l'eseguibile python (.exe). L'effetto sembra essere permanente, quindi è necessario farlo solo una volta. Dovrai eseguire win_add2path.py per ogni utente ma non otterrai la scatola dopo la prima volta.
user2099484 il

8

Il seguente programma aggiungerà il percorso dell'eseguibile python e gli script subdir (che è dove sono installati pip e easy_install) nell'ambiente. Trova il percorso dell'eseguibile python dalla chiave di registro che lega l'estensione .py. Rimuoverà i vecchi percorsi Python nel tuo ambiente. Funziona anche con XP (e probabilmente Vista). Utilizza solo i moduli forniti con il programma di installazione di Windows di base.

# 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)

Questo ha rovinato il mio PERCORSO. Ecco una versione fissa (ho anche rimosso remove_old, che è impossibile * per avere ragione): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * yes
Aur Saraf,

6

So che questo post è vecchio ma vorrei aggiungere che le soluzioni presuppongono privilegi di amministratore. Se non hai quelli puoi:

Vai al pannello di controllo, digita path (questo è Windows 7 ora, quindi nella casella Cerca) e fai clic su "Modifica variabili di ambiente per il tuo account". Ora vedrai la finestra di dialogo Variabile d'ambiente con "Variabili utente" in alto e "Variabili di sistema" in basso.

Puoi, come utente, fare clic sul pulsante "Nuovo" in alto e aggiungere:

Nome della variabile: PERCORSO
Valore della variabile: C: \ Python27

(nessuno spazio) e fai clic su OK. Una volta riavviato il prompt dei comandi, qualsiasi PERCORSO nelle variabili utente viene aggiunto alla fine del percorso di sistema. Non sostituisce il PERCORSO in nessun altro modo.

Se desideri impostare un percorso completo specifico, è meglio creare un file batch come questo piccolo:

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

Chiamalo "compiler.bat" o qualsiasi altra cosa e fai doppio clic per avviarlo. O link ad esso. O appuntalo ecc ...


6

È necessario apportare modifiche alla variabile di sistema
- Fare clic con il tasto destro su "Risorse del computer"
- Fare clic su "Proprietà"
- Fare clic su "Impostazioni di sistema avanzate" nel pannello laterale
- Fare clic su Variabile d'ambiente - Saranno due sezioni dell'utente variabile e variabile di sistema
- Sotto la sezione variabile di sistema cerca la variabile 'Percorso' fai clic su modifica e aggiungi
"C:\Python27;"(senza virgolette) salvalo
- Ora apri il tipo di riga di comando 'percorso' premi invio vedrai che la variabile di percorso è stata modificata
- Ora digita python --versionvedrai la versione di Python

Ed è fatto


5

Per chiunque cerchi di ottenere questo risultato con Python 3.3+, il programma di installazione di Windows ora include un'opzione per aggiungere python.exe al percorso di ricerca del sistema. Maggiori informazioni nei documenti .


1
Questo è quello che ho usato, perché avevo problemi a trovare il percorso esatto dell'installazione. Avvia il programma di installazione, fai clic su "Modifica" e quindi su Funzionalità opzionali, fai clic su Avanti, quindi seleziona la casella per aggiungere Python al percorso di sistema e premi Fine.
Rishi,

4

Lavorare con le variabili di ambiente di Windows è sempre un'esperienza orribile. Di recente, ho trovato uno straordinario strumento chiamato Rapid Environment Editor, che offre un'interfaccia grafica incredibilmente semplice per gestirli.

Se usi chocolatey, puoi installarlo usando choco install rapidee. Altrimenti, dai un'occhiata a http://www.rapidee.com/en/download

Rileggendo questo, sembra uno scellino pagato, ma giuro di no! È stata solo una delle utility più utili nel mio toolkit per un po 'e sono sorpreso che nessuno sembra saperlo.


3

Se nel mio caso Python è stato installato con un altro programma, come ArcGIS 10.1, è necessario includere anche eventuali cartelle extra che indirizzano a python.exe nelle variabili di ambiente.

Quindi le mie variabili d'ambiente sono così:

Variabili di sistema> Percorso> aggiungi ;C:\Python27\ArcGIS10.1


2

Questa domanda è piuttosto vecchia, ma ho riscontrato un problema simile e la mia soluzione non è stata elencata qui:

Assicurati di non avere una cartella nel PERCORSO che non esiste.

Nel mio caso, avevo un sacco di cartelle predefinite (Windows, Powershell, Sql Server, ecc.) E quindi una personalizzazione C:\binche di solito uso, e poi varie altre modifiche come c:\python17, ecc. Si scopre che il processore cmd stava scoprendo che c:\binnon non esiste e quindi ha smesso di elaborare il resto della variabile.

Inoltre, non so che l'avrei mai notato senza il PATH manager . Ha ben evidenziato il fatto che quell'elemento non era valido.


2

Ho appena installato Python 3.3 su Windows 7 usando l'opzione "aggiungi python al PERCORSO".

Nella variabile PATH, il programma di installazione ha aggiunto automaticamente una barra rovesciata finale : C:\Python33\ e quindi non ha funzionato al prompt dei comandi (ho provato a chiudere / aprire il prompt più volte)

Ho rimosso la barra rovesciata finale e poi ha funzionato:C:\Python33

Grazie Ram Narasimhan per il tuo suggerimento n. 4!


2

Ho organizzato la mia variabile d'ambiente python in questo modo con Win7 64-bit usando cmd.

Ho impostato la variabile PYTHONPATHtramite il menu variabile d'ambiente di windows e ho aggiunto %PYTHONPATH%alla PATHvariabile:

...;%PYTHONPATH%

La shell cmd espande la variabile correttamente a questo:

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

Non dimenticare di riavviare la shell cmd dopo aver modificato PATH.


0

scrivilo sul tuo prompt dei comandi:

set Path=%path%

Sostituisci% path% con il percorso della tua cartella Python Esempio:

set Path=C:/Python27

-2

Se sei frustrato impostando il percorso per Python, scarica la nuova versione di Python, disinstalla la versione precedente di Python e durante l'installazione della nuova versione ti chiederà se impostare il percorso e installarlo

è il modo migliore

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.