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):
-
Ö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).
-
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)
.)
-
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.