470 Stimmen

Ein Verzeichnis dauerhaft zum PYTHONPATH hinzufügen?

Wann immer ich die sys.path.append wird das neue Verzeichnis hinzugefügt. Sobald ich jedoch Python schließe, wird die Liste auf die vorherigen (Standard-?) Werte zurückgesetzt. Wie füge ich ein Verzeichnis dauerhaft zu PYTHONPATH ?

9voto

boyangeor Punkte 111

Hinzufügen von export PYTHONPATH="${PYTHONPATH}:/my/other/path" in ~/.bashrc funktioniert möglicherweise nicht, wenn PYTHONPATH gibt es derzeit nicht (wegen der : ).

export PYTHONPATH="/my/other/path1"
export PYTHONPATH="${PYTHONPATH}:/my/other/path2"

Das Hinzufügen der obigen Zeile zu ~/.bashrc hat bei mir unter Ubuntu 16.04 funktioniert

7voto

Das folgende Skript funktioniert auf allen Plattformen, da es reines Python ist. Es nutzt die pathlib Path, die hier dokumentiert ist https://docs.python.org/3/library/pathlib.html , damit es plattformübergreifend funktioniert. Sie führen es einmal aus, starten den Kernel neu und das war's. Inspiriert von https://medium.com/@arnaud.bertrand/modifying-python-s-search-path-with-pth-files-2a41a4143574 . Zur Ausführung sind Administratorrechte erforderlich, da Sie einige Systemdateien ändern.

from pathlib import Path
to_add=Path(path_of_directory_to_add)
from sys import path

if str(to_add) not in path:
    minLen=999999
    for index,directory in enumerate(path):
        if 'site-packages' in directory and len(directory)<=minLen:
            minLen=len(directory)
            stpi=index

    pathSitePckgs=Path(path[stpi])
    with open(str(pathSitePckgs/'current_machine_paths.pth'),'w') as pth_file:
        pth_file.write(str(to_add))

7voto

Caio Oliveira Punkte 1178

Dies ist eine Aktualisierung dieses Threads, der einige alte Antworten enthält.

Für diejenigen, die MAC-OS Catalina oder eine neuere Version (>= 10.15) verwenden, wurde ein neues Terminal namens zsh (ein Ersatz für das alte bash ).

Ich hatte aufgrund dieser Änderung einige Probleme mit den obigen Antworten, und ich habe eine Art Workaround gemacht, indem ich die Datei ~/.zshrc und Einfügen des Dateiverzeichnisses in das Feld $PATH y $PYTHONPATH

Also habe ich es zuerst getan:

nano ~/.zshrc

Als der Editor geöffnet wurde, fügte ich den folgenden Inhalt ein:

export PATH="${PATH}:/Users/caio.hc.oliveira/Library/Python/3.7/bin"
export PYTHONPATH="${PYTHONPATH}:/Users/caio.hc.oliveira/Library/Python/3.7/bin"

gespeichert und das Terminal neu gestartet.

WICHTIG! Der obige Pfad ist auf den Pfad meines Computers eingestellt, Sie müssen ihn an Ihr Pythonprogramm anpassen.

6voto

janex Punkte 499

Um die Antwort von awesomo zu ergänzen, können Sie diese Zeile auch in Ihre ~/.bash_profile o ~/.profile

4voto

wpmoradi Punkte 41

Das Hinzufügen eines neuen Pfades zu PYTHONPATH erfolgt manuell durch:

Hinzufügen des Pfades zu Ihrem ~/.bashrc-Profil, im Terminal durch:

vim ~/.bashrc

Fügen Sie Folgendes in Ihr Profil ein

export PYTHONPATH="${PYTHONPATH}:/User/johndoe/pythonModule"

dann stellen Sie sicher, dass Sie Ihr bashrc-Profil als Quelle angeben, wenn Sie Ihren Code im Terminal ausführen:

source ~/.bashrc 

Ich hoffe, das hilft.

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