470 Stimmen

Wie füge ich dem PYTHONPATH in Windows hinzu, damit er meine Module/Pakete findet?

Ich habe ein Verzeichnis, das alle meine Django-Anwendungen beherbergt ( C:\My_Projects ). Ich möchte dieses Verzeichnis zu meinem PYTHONPATH damit ich die Anwendungen direkt aufrufen kann.

Ich habe versucht, Folgendes hinzuzufügen C:\My_Projects\; zu meinem Windows Path von der Windows-Benutzeroberfläche ( My Computer > Properties > Advanced System Settings > Environment Variables ). Aber es liest immer noch nicht das Coltrane-Modul und erzeugt diesen Fehler:

Fehler: Kein Modul namens coltrane

13voto

MWOJO Punkte 316

Die Umgebungsvariable PYTHONPATH wird von Python verwendet, um eine Liste von Verzeichnissen anzugeben, aus denen Module unter Windows importiert werden können. Während der Ausführung können Sie die sys.path um zu sehen, welche Verzeichnisse durchsucht werden, wenn Sie etwas importieren.

Um diese Variable von der Eingabeaufforderung aus zu setzen, verwenden Sie: set PYTHONPATH=list;of;paths .

Um diese Variable von PowerShell aus festzulegen, verwenden Sie: $env:PYTHONPATH=’list;of;paths’ kurz bevor Sie Python starten.

Die globale Einstellung dieser Variable über die Einstellungen der Umgebungsvariablen ist pas empfohlen, da sie von jeder beliebigen Python-Version verwendet werden kann, anstatt von der, die Sie verwenden wollen. Mehr lesen unter die FAQ-Dokumente zu Python unter Windows .

12voto

ojdo Punkte 6952

Auf diese Frage muss eine angemessene Antwort gegeben werden:

Verwenden Sie einfach das Standardpaket site der für diese Aufgabe wie geschaffen ist!

und so geht's (plagiierend meine eigene Antwort auf meine eigene Frage zum selben Thema):


  1. Öffnen Sie eine Python-Eingabeaufforderung und geben Sie

    import site site.USER_SITE 'C:\Users\ojdo\AppData\Roaming\Python\Python37\site-packages' ...

(Alternativ können Sie auch python -m site --user-site für den gleichen Effekt).

  1. Erstellen Sie diesen Ordner, wenn er noch nicht existiert:

    ...

    import os os.makedirs(site.USER_SITE) ...

(Oder, in Bash, Ihre bevorzugte Variante von makedirs -p $(python -m site --user-site) .)

  1. Eine Datei erstellen sitecustomize.py (mit genau diesem Dateinamen, sonst funktioniert es nicht) in diesem Ordner, der den Inhalt von FIND_MY_PACKAGES entweder manuell oder mit folgendem Code. Natürlich müssen Sie Folgendes ändern C:\My_Projects auf den richtigen Pfad zu Ihrem benutzerdefinierten Importort.

    ...

    FIND_MY_PACKAGES = """ import site site.addsitedir(r'C:\My_Projects') """ filename = os.path.join(site.USER_SITE, 'sitecustomize.py') with open(filename, 'w') as outfile: ... print(FIND_MY_PACKAGES, file=outfile)

Und das nächste Mal, wenn Sie Python starten, C:\My_Projects ist in Ihrem sys.path , ohne die systemweiten Einstellungen zu verändern. Bonus: Die obigen Schritte funktionieren auch unter Linux!


Warum funktioniert das?

Von der Dokumentation des Standardbibliothekspakets site :

[Dann] wird versucht, ein Modul namens sitecustomize die beliebige standortspezifische Anpassungen vornehmen kann. [...].

Wenn Sie also ein Modul namens sitecustomize irgendwo im PYTHONPATH, wird das Paket beim Start von Python ausgeführt. Und durch den Aufruf von site.addsitedir El sys.path kann sicher nach Ihren Wünschen erweitert werden.

12voto

Gajendra D Ambi Punkte 3270
import sys
sys.path.append("path/to/Modules")
print sys.path

Dies bleibt nicht über Neustarts hinweg bestehen oder wird in andere Dateien übersetzt. Sie ist jedoch ideal, wenn Sie keine dauerhafte Änderung an Ihrem System vornehmen möchten.

6voto

Octane Punkte 1150

Python 3.4 unter Windows funktionierte es, als ich es zu PATH-Umgebungsvariable anstelle von PYTHONPATH. Wenn Sie z.B. Python 3.4 installiert haben in D:\Programming\Python34 dann fügen Sie dies am Ende Ihrer PATH-Umgebungsvariablen hinzu

;D:\Programming\Python34

Schließen und öffnen Sie die Eingabeaufforderung erneut und führen Sie "python" aus. Dadurch wird die Python-Shell geöffnet. Dies behebt auch mein Sublime-3-Problem mit python wird nicht als interner oder externer Befehl erkannt'. .

6voto

Pavan Ebbadi Punkte 812

Die Pfade für Python 2.X können mit einigen der oben genannten Anweisungen festgelegt werden. Python 3 wird standardmäßig installiert in C:\Users\\AppData\Local\Programs\Python\Python35 -32\ Dieser Pfad muss also zur Path-Variable in der Windows-Umgebung hinzugefügt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X