ImportError: Kein Modul mit dem Namen site unter Windows

101

Ich versuche zum ersten Mal Python zu installieren. Ich habe das folgende Installationsprogramm von der Python-Website heruntergeladen: Python 2.7.1 Windows Installer (Windows-Binärdatei - enthält keine Quelle) . Ich habe dann das Installationsprogramm ausgeführt, "Alle Benutzer" ausgewählt und alles war in Ordnung. Ich habe Python am Standardspeicherort installiert:

C:\Python27

Um zu testen, ob Python korrekt installiert wurde, habe ich zu meinem Python-Verzeichnis navigiert und den Befehl "python" in der Windows-Eingabeaufforderung cmd ausgeführt. Es gibt mir den folgenden Fehler zurück:

ImportError: Kein Modul mit dem Namen site

Wenn ich 'python -v' mache, bekomme ich folgendes:

#installing zipimport hook
import zipimport # builtin
#installierter Zipimport-Hook
#ImportError: No module named site #clear integriert ._
#clear sys.path #clear sys.argv
#clear sys.ps1 #clear sys.ps2
#clear sys.exitfunc #clear sys.exc_type
#clear sys.exc_value #clear sys.exc_traceback
#clear sys.last_type #clear sys.last_value
#clear sys.last_traceback #clear sys.path_hooks
#clear sys.path_importer_cache #clear sys.meta_path
#clear sys.flags #clear sys.float_info
#restore sys.stdin # wiederherstellen sys.stdout
#restore sys.stderr #cleanup Haupt
#cleanup [1 ] zipimport #cleanup [1] Signal
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup builtin
#cleanup ints: 6 unfreed ints #cleanup floats

Wenn ich dir mache, C:\Python27\Lib\site.py*bekomme ich folgendes:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py * Das
Volume in Laufwerk C hat keine Bezeichnung.
Die Seriennummer des Volumes lautet DAB9-A863

Verzeichnis von C: \ Python27 \ Lib

13/11/2010 20:08 20,389 site.py
1 Datei (en) 20,389 Bytes
0 Dir (s) 694,910,976 Bytes frei

Irgendwelche Ideen?

Mimminito
quelle
Angenommen, Sie haben den Standardinstallationsspeicherort nicht geändert. Ist die Datei C: /Python27/Lib/site.py auf Ihrem Computer vorhanden?
Tim W.
Ja, site.py befindet sich in diesem Ordner
Mimminito
7
@Mimminito: Ich bin neugierig (leicht), warum Sie für 9 Monate verschwunden sind und gerade meine Antwort akzeptiert haben und (sehr) ob Sie jemals herausgefunden haben, was das zugrunde liegende Problem war.
John Machin
Ich bekomme derzeit dieses Problem. Ich habe keine Ahnung warum und habe im Internet nach einer Lösung gesucht. Es heißt immer wieder ImportError: Kein Modul mit dem Namen site, egal wie ich Python installiere und was ich in meine PATHs eingebe. Ich würde gerne wissen, wie Python tatsächlich site.py lädt. Offensichtlich ist dies ein relatives / absolutes Pfadproblem. Und wenn ich nur den Pfad von Python direkt konfigurieren könnte, ohne auf zufällige Stiche im Dunkeln zurückzugreifen.
CMCDragonkai
3
Ich hatte dieses Problem. Ich habe von Cygwin aus angerufen, das den Unix-ähnlichen Pfad für hatte PYTHONPATH. Ich habe es mit in einen Windows-Pfad konvertiert export PYTHONPATH=$(cygpath -w $PYTHONPATH)und es funktioniert einwandfrei. Hinzufügen dieser Notiz, um anderen Personen zu helfen, die möglicherweise mit demselben Problem auf diese Seite kommen.
Robert

Antworten:

145

Ich habe mich fast einen Tag lang mit diesem Problem befasst und endlich einen Durchbruch erzielt. Versuche dies:

  1. Festlegen der Variablen PYTHONPATH / PYTHONHOME

    Klicken Sie mit der rechten Maustaste auf das Computersymbol im Startmenü und gehen Sie zu Eigenschaften . Wechseln Sie auf der linken Registerkarte zu Erweiterte Systemeinstellungen . Wechseln Sie im daraufhin angezeigten Fenster zur Registerkarte Erweitert und klicken Sie unten auf Umgebungsvariablen . Klicken Sie in der Liste der Benutzervariablen und starten Python eingeben, und wiederholen Sie für Variablen - System , nur um sicher zu stellen , dass Sie nicht für PYTHONPATH oder PYTHONFehl Setvariablen haben. Fügen Sie als Nächstes neue Variablen hinzu (ich habe dies eher im System als im Benutzer getan, obwohl dies möglicherweise auch für den Benutzer funktioniert): PYTHONPATH, festgelegt auf C: \ Python27 \ Lib . PYTHONHOME, setzen Sie auf C: \ Python27 .

Hoffe das hilft!

RenderCase
quelle
7
Und Sie müssen% PYTHONHOME% auch an Ihre Pfadvariable anhängen, damit dies funktioniert.
Rishi
7
Aha! Dies sollte die Antwort auf die Frage sein. Für mich war es eine PYTHONHOME-Variable, die auf einen ungültigen Pfad gesetzt wurde ... Das wurde entfernt und jetzt FUNKTIONIERT es! Es scheint, dass Steams Alien Swarm Mod das hinzugefügt hat.
Timotei
2
Das Festlegen keiner der PYTHONPATH/PYTHONHOMEVariablen sollte erforderlich sein, damit Python site.pydas im LibOrdner platzierte Modul findet . Diese Antwort ist bestenfalls eine Problemumgehung.
Piotr Dobrogost
3
Umgebungsvariablen sind ein Albtraum. Ich beschuldige Linux.
Damien
1
Stellen Sie sicher, dass nicht zwei Python-Versionen gleichzeitig installiert sind. Dies könnte den Interpreter durcheinander bringen, wenn Python 2.7 zuerst in% PATH% steht und Python3 beispielsweise für PYTHONHOME eingestellt ist.
LM.Croisez
41

Schnelle Lösung: Stellen Sie PYTHONHOME und PYTHONPATH ein und fügen Sie PYTHONHOME in PATH ein

Zum Beispiel, wenn Sie unter c: \ Python27 installiert haben

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

Stellen Sie sicher, dass Sie kein abschließendes '\' auf den PYTHON * -Vars haben. Dies scheint es zu zerstören.

slckin
quelle
3
Unter Windows 10 ist dies jetzt: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto
Dies funktionierte gut für mich unter Windows 7 mit Python 3.6
Wissensdurst
12

Ich hatte dieses Problem, nachdem ich sowohl Windows Python als auch Cygwin Python installiert und versucht hatte, Cygwin Python von Cygwin aus auszuführen. Ich habe es gelöst, indem ich exportPYTHONHOME = / usr / und PYTHONPATH = / usr / lib / python2.7 verwendet habe

Jorge Vargas
quelle
12

Stellen Sie sicher, dass Ihre PYTHONHOME-Umgebungsvariable richtig eingestellt ist. Sie erhalten diese Fehlermeldung, wenn PYTHONHOME auf einen ungültigen Speicherort oder auf eine andere Python-Installation verweist, die Sie ausführen möchten.

Versuche dies:

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

Verwenden

setx PYTHONHOME C:\Python27

um dies dauerhaft für nachfolgende Befehlsansagen festzulegen

Mika
quelle
6
Verwenden Sie setx PYTHONHOME C:\Python27diese Option , um dies für nachfolgende Befehlsaufforderungen dauerhaft festzulegen. Andernfalls müssen Sie den Befehl set jedes Mal verwenden.
Iain Samuel McLean Elder
5

Finde site.py und fügen Sie den Weg in PYTHONPATH . Dies wird Ihr Problem lösen.

DigviJay Patil
quelle
4

Versuchen Sie, Windows Python von Cygwin aus auszuführen? Ich habe das gleiche Problem. Python in Cygwin kann die Site nicht importieren. Python in Cmd funktioniert.

Es sieht so aus, als müssten Sie sicherstellen, dass Sie PYTHONHOME und PYTHONPATH ausführen cygwin -aw, um sie zu Windows-Pfaden zu machen. Außerdem scheint Python einige falsche Pfade zu verwenden.

Ich denke, ich muss Python über Cygwin installieren, damit es funktioniert.

idbrii
quelle
1
Hallo, das ist wahrscheinlich noch kein Problem für Sie, aber falls andere Leute mit diesem Problem kommen, lesen Sie meinen Kommentar zur Hauptfrage. Grundsätzlich müssen Sie mit PYTHONPATHin einen Windows-Pfad konvertieren export PYTHONPATH=$(cygpath -w $PYTHONPATH).
Robert
4

Für Windows 10 (Follow-up zu @ slckin Antwort) kann dies über die Befehlszeile eingestellt werden mit:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"
Vesanto
quelle
6
Ich würde es niemals verwenden, setx PATH "%PYTHONHOME%;%PATH%"da es den Benutzer PATHmit der Summe aus Benutzer- und Systempfad festlegt . Es ist in Ordnung lokal (mit set), aber nicht mitsetx
Jean-François Fabre
4

In meinem Fall war das Problem eine andere site.py-Datei, die aufgrund der PATH-Einstellung früher als die aus Python \ Lib behoben wurde.

Umgebung: Windows 10 Pro, Python27.

Auf meinem Desktop ist pgAdmin installiert, auf dem die Datei C: \ Programme (x86) \ pgAdmin \ venv \ Lib \ site.py gespeichert ist. Da die Umgebungsvariable PATH früher als Python pdAdmins Zuhause hatte (anscheinend eine schlechte Idee), wurde zuerst die Site.py von pgAdmin gefunden.

Alles, was ich tun musste, um das Problem zu beheben, war, pgAdmins Zuhause später als Python in PATH zu verschieben

Ivan C.
quelle
3

Für mich geschah es, weil ich 2 Versionen von Python installiert hatte - Python 27 und Python 3.3. In beiden Ordnern war die Pfadvariable festgelegt, und daher gab es dieses Problem. Um dies zu beheben, habe ich python27 in den temporären Ordner verschoben, da ich mit Python 3.3 in Ordnung war. Überprüfen Sie daher Umgebungsvariablen wie PATH, PYTHONHOME, da dies möglicherweise ein Problem darstellt. Vielen Dank.

kinshuk4
quelle
1

Wenn jemand feststellt, dass es unter Nicht-Administrator-Benutzern immer noch nicht funktioniert:

Beispielfehler:

ImportError: No module named iso8601

Sie müssen die Option '--always-unzip' für easy_install festlegen:

easy_install --always-unzip python-keystoneclient

Es entpackt Ihre Eidateien und ermöglicht den Import, um sie zu finden.

Noma4i
quelle
1

Ich habe das gleiche Problem bei der ImportError: No module named siteInstallation von Python 2.7.11 durchlaufen

Anfangs hatte ich Python2.5 und der PYTHONHOME-Pfad wurde auf Python2.5 gesetzt. Ich habe es umbenannt C:\Python27\und es hat das Problem gelöst.

Debashish
quelle
0

Sie können das Open Source Active Python Setup ausprobieren, ein gut gemachtes Python-Installationsprogramm für Windows. Sie müssen nur Ihre Version deinstallieren und installieren ...

philnext
quelle
7
python.org Installer ist in Ordnung
David Heffernan
Ich habe Active Python auf meinem Laptop installiert, und das ist einwandfrei installiert. Aber es funktioniert nicht auf meinem PC, ich bekomme immer noch den gleichen Fehler
Mimminito
0

Ich habe Slckins Antwort gewählt. Mein Problem war, dass ich nachdenklich war und doppelte Anführungszeichen um die Pfade hinzufügte. Ich habe die doppelten Anführungszeichen in allen drei Variablen entfernt: PYTHONHOME, PYTHONPATH und PATH. Beachten Sie, dass sich dies in einer Cmd- oder Bat-Datei befand, um die Umgebung für andere Tools einzurichten. Die doppelten Anführungszeichen können jedoch in einer Symboleinstellung hilfreich sein. Tippen

einstellen

ergab, dass die Anführungszeichen im Pfad waren und nicht wie erwartet abfielen. Ich habe den Pfad auch kurzgeschlossen, sodass er weniger als 256 Zeichen lang war.

Greg
quelle
-1

Ich habe eine Anwendung, die stark auf Python basiert und mit Python 2.7.x auf dem neuesten Stand ist, wenn neue Versionen veröffentlicht werden. Bis zum 2.7.11 war alles in Ordnung, als ich den gleichen " No module named site" Fehler bekam. Ich habe PYTHONHOME auf eingestellt c:\Python27und es funktioniert. Es bleibt jedoch das Rätsel, warum dies jetzt benötigt wird, als dies bei früheren Versionen nicht der Fall war. Und wenn es benötigt wird, warum setzt das Installationsprogramm diese Variable nicht?

Dave Lawrence
quelle
-1

Ich hatte das gleiche Problem. Meine Lösung bestand darin, die Python-Installation zu reparieren. (Es war eine neue Installation, also habe ich kein Problem erwartet, aber jetzt ist es gelöst.)

So reparieren Sie (Windows 7):

  1. Gehen Sie zu Systemsteuerung -> Programme -> Programme und Funktionen
  2. Klicken Sie auf die installierte Python-Version und klicken Sie dann auf Deinstallieren / Ändern.
  3. Befolgen Sie die Anweisungen, um die Installation zu reparieren.
Stellen Sie Monica wieder her - Auf Wiedersehen SE
quelle
-3

Installieren Sie yaml von der PyYAML-Homepage: http://www.pyyaml.org/wiki/PyYAML

Wählen Sie die entsprechende Version für Ihr Betriebssystem und Python.

CLead1000
quelle