ImportError: nessun modulo denominato site su Windows


101

Sto cercando di installare Python per la prima volta. Ho scaricato il seguente programma di installazione dal sito Web Python: Python 2.7.1 Windows Installer (binario di Windows - non include il codice sorgente) . Quindi ho eseguito il programma di installazione, ho selezionato "Tutti gli utenti" e tutto è andato bene. Ho installato Python nella posizione predefinita:

C:\Python27

Successivamente, per verificare che Python fosse installato correttamente, sono passato alla mia directory Python e ho eseguito il comando "python" nel prompt di cmd di Windows. Mi restituisce il seguente errore:

ImportError: nessun modulo denominato site

Quando eseguo 'python -v' ottengo quanto segue:

#installing zipimport hook
import zipimport # builtin
#installed zipimport hook
#ImportError: No module named site #clear builtin ._
#clear sys.path #clear
#clear sys.ps1 sys.argv
#clear sys.exitfunc #clear sys.ps2
#clear sys.exc_value #clear sys.exc_type
#clear sys.last_type #clear sys.exc_traceback
#clear sys.last_traceback #clear sys.last_value #clear sys.path_hooks
#clear sys.path_importer_cache #clear sys.meta_path
#clear sys.flags #clear sys.float_info
#restore sys.stdin # ripristinare sys.stdout
#restore sys.stderr #cleanup main
#cleanup [1 ] zipimport #cleanup [1] segnale
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup builtin
#cleanup ints: 6 unfreed ints #cleanup floats

Quando faccio dir C:\Python27\Lib\site.py*ottengo quanto segue:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py * Il
volume nell'unità C non ha etichetta.
Il numero di serie del volume è DAB9-A863

Directory di C: \ Python27 \ Lib

13/11/2010 20:08 20,389 site.py
1 File 20,389 byte
0 Dir 694,910,976 byte liberi

Qualche idea?


Supponendo che tu non abbia cambiato il percorso di installazione predefinito, il file C: /Python27/Lib/site.py esiste sul tuo computer?
Tim W.

Sì, site.py si trova in quella cartella
Mimminito

7
@Mimminito: Sono curioso (leggermente) perché sei scomparso per 9 mesi e solo ora hai accettato la mia risposta, e (molto) se hai mai scoperto quale fosse il problema sottostante.
John Machin

Al momento sto riscontrando questo problema. Non ho idea del perché e ho cercato in Internet una soluzione. Continua a dire ImportError: Nessun modulo denominato site, non importa come installo python e cosa metto nei miei PATH. Vorrei sapere come Python carica effettivamente site.py. Ovviamente questo è un problema di percorso relativo / assoluto. E se solo potessi configurare il percorso di Python direttamente senza ricorrere a pugnalate casuali nel buio.
CMCDragonkai

3
Ho avuto questo problema. Stavo invocando da Cygwin che aveva il percorso unix-like per PYTHONPATH. L'ho convertito in un percorso in stile Windows con export PYTHONPATH=$(cygpath -w $PYTHONPATH)e funziona bene. Aggiunta di questa nota per aiutare altre persone che potrebbero venire su questa pagina con lo stesso problema.
robert

Risposte:


145

Ho esaminato questo problema per quasi un giorno e finalmente ho avuto una svolta. Prova questo:

  1. Impostazione delle variabili PYTHONPATH / PYTHONHOME

    Fare clic con il tasto destro del mouse sull'icona Computer nel menu di avvio , andare su proprietà . Nella scheda a sinistra, vai a Impostazioni di sistema avanzate . Nella finestra che si apre, vai alla scheda Avanzate , quindi in basso fai clic su Variabili d'ambiente . Fare clic nell'elenco delle variabili utente e iniziare a digitare Python e ripetere per Variabili di sistema , solo per assicurarsi di non avere variabili impostate in modo errato per PYTHONPATH o PYTHONHOME. Successivamente, aggiungi nuove variabili (l'ho fatto in System piuttosto che in User, sebbene possa funzionare anche per User): PYTHONPATH, impostato su C: \ Python27 \ Lib . PYTHONHOME, impostato su C: \ Python27 .

Spero che questo ti aiuti!


7
E devi aggiungere% PYTHONHOME% anche alla tua variabile di percorso affinché funzioni.
Rishi

7
Aha! Questa dovrebbe essere la risposta alla domanda. Per me, era una variabile PYTHONHOME impostata su un percorso non valido ... Rimossa e ora FUNZIONA! Sembra che il mod Alien Swarm di Steam lo abbia aggiunto.
Timotei

2
L'impostazione di nessuna delle PYTHONPATH/PYTHONHOMEvariabili dovrebbe essere necessaria per Python per individuare il site.pymodulo inserito nella Libcartella. Questa risposta è al massimo una soluzione alternativa.
Piotr Dobrogost

3
Le variabili ambientali sono un incubo. Do la colpa a Linux.
Damien

1
Assicurati di non avere due versioni di Python installate contemporaneamente. Questo potrebbe rovinare l'interprete, se Python 2.7 è il primo in% PATH% e Python3 è impostato per PYTHONHOME, per esempio.
LM.Croisez

41

Soluzione rapida: imposta PYTHONHOME e PYTHONPATH e includi PYTHONHOME su PATH

Ad esempio, se hai installato in c: \ Python27

set PYTHONHOME=c:\Python27
set PYTHONPATH=c:\Python27\Lib
set PATH=%PYTHONHOME%;%PATH%

Assicurati di non avere una "\" finale sui vars PYTHON *, questo sembra romperlo come un filo.


3
Se su Windows 10, ora è: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto

Questo ha funzionato bene su Windows 7 con Python 3.6
Thirst for Knowledge

12

Ho riscontrato questo problema dopo aver installato sia Windows Python che Cygwin Python e provato a eseguire Cygwin Python da Cygwin. L'ho risolto exporting PYTHONHOME = / usr / e PYTHONPATH = / usr / lib / python2.7


12

Assicurati che la tua variabile d'ambiente PYTHONHOME sia impostata correttamente. Riceverai questo errore se PYTHONHOME punta a una posizione non valida oa un'altra installazione di Python che stai tentando di eseguire.

Prova questo:

C:\>set PYTHONHOME=C:\Python27
C:\>python

Uso

setx PYTHONHOME C:\Python27

per impostarlo in modo permanente per i successivi prompt dei comandi


6
Utilizzare setx PYTHONHOME C:\Python27per impostarlo in modo permanente per i successivi prompt dei comandi. Altrimenti, devi usare ogni volta il comando set.
Iain Samuel McLean Anziano

5

Individua site.py e aggiungi il suo percorso in PYTHONPATH . Questo risolverà il tuo problema.


4

Stai cercando di eseguire Windows Python da Cygwin? Ho lo stesso problema. Python in Cygwin non riesce a importare il sito. Python in Cmd funziona.

Sembra che tu debba assicurarti di eseguire PYTHONHOME e PYTHONPATH cygwin -aw per renderli percorsi di Windows. Inoltre, Python sembra utilizzare alcuni percorsi errati.

Penso che dovrò installare Python tramite Cygwin per farlo funzionare.


1
Ciao, probabilmente questo non è ancora un problema per te, ma nel caso in cui altre persone presentino questo problema, vedi il mio commento sulla domanda principale. Fondamentalmente è necessario convertire PYTHONPATHin un percorso in stile Windows con export PYTHONPATH=$(cygpath -w $PYTHONPATH).
robert

4

Per Windows 10 (follow-up su @slckin answer), questo può essere impostato tramite la riga di comando con:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"

6
Avrei mai usare setx PATH "%PYTHONHOME%;%PATH%"perché mette utente PATHcon la somma di utente e sistema di percorso. Va bene localmente (usando set) ma non usandosetx
Jean-François Fabre

4

Nel mio caso, il problema era un altro file site.py, che è stato risolto prima di quello di Python \ Lib, a causa dell'impostazione PATH.

Ambiente: Windows 10 Pro, Python27.

Sul mio desktop è installato pgAdmin, che ha il file C: \ Programmi (x86) \ pgAdmin \ venv \ Lib \ site.py. Poiché la variabile d'ambiente PATH aveva la home di pdAdmin prima di Python (apparentemente una cattiva idea in primo luogo), site.py di pgAdmin è stato trovato per primo.

Tutto quello che dovevo fare per risolvere il problema era spostare la home di pgAdmin più tardi di Python, in PATH


3

Per me è successo perché avevo 2 versioni di python installate: python 27 e python 3.3. Entrambe queste cartelle avevano una variabile di percorso impostata e quindi c'era questo problema. Per risolvere questo problema, ho spostato python27 nella cartella temporanea, poiché stavo bene con python 3.3. Quindi controlla le variabili di ambiente come PATH, PYTHONHOME poiché potrebbe essere un problema. Grazie.


1

Se qualcuno scoprirà che non funziona ancora con utenti non amministratori:

Errore di esempio:

ImportError: No module named iso8601

devi impostare l'opzione '--always-unzip' per easy_install:

easy_install --always-unzip python-keystoneclient

Decomprimerà i tuoi file uovo e consentirà all'importazione di trovarli.


1

Ho ImportError: No module named siteriscontrato lo stesso problema durante l'installazione di Python 2.7.11

Inizialmente avevo Python2.5 e il percorso PYTHONHOME era impostato su Python2.5. L'ho rinominato in C:\Python27\e ha risolto il problema.


0

Puoi provare l' installazione Open Source di Python attivo, che è un programma di installazione Python ben fatto per Windows. Devi solo disinstallare la tua versione e installarla ...


7
Il programma di installazione di python.org va benissimo
David Heffernan

Ho installato Active Python sul mio laptop e questo è stato installato perfettamente. Ma non funziona sul mio PC, ricevo ancora lo stesso errore
Mimminito

0

Ho votato per la risposta di slckin. Il mio problema era che ero premuroso e ho aggiunto virgolette doppie intorno ai percorsi. Ho rimosso le virgolette doppie in tutte e tre le variabili: PYTHONHOME, PYTHONPATH e PATH. Nota che questo era in un file cmd o bat per configurare l'ambiente per altri strumenti. Tuttavia, le virgolette doppie possono essere utili in un'impostazione di icone. Digitando

impostato

ha rivelato che le virgolette erano nel percorso e non sono cadute come previsto. Ho anche accorciato il PERCORSO in modo che fosse lungo meno di 256 caratteri.


-1

Ho un'applicazione che fa molto affidamento su Python e mi sono tenuto aggiornato con python 2.7.x man mano che vengono rilasciate nuove versioni. Tutto è andato bene fino alla 2.7.11 quando ho ricevuto lo stesso " No module named site" errore. Ho impostato PYTHONHOME su c:\Python27e funziona. Ma resta il mistero del perché ora sia necessario quando non lo era con le versioni precedenti. E, se è necessario, perché il programma di installazione non imposta questa var?


-1

Ho avuto lo stesso problema. La mia soluzione era riparare l'installazione di Python. (Era una nuova installazione quindi non mi aspettavo un problema ma ora è risolto.)

Per riparare (Windows 7):

  1. vai su Pannello di controllo -> Programmi -> Programmi e funzionalità
  2. fare clic sulla versione di Python installata e quindi premere Disinstalla / Cambia.
  3. seguire le istruzioni per riparare l'installazione.

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.