Auf einem Ubuntu (10.10) -System habe ich ein Python-Paket, in das ich mich selbst installiere /usr/local/lib/python2.6/site-packages/
. Dies ist nicht im Standardpfad (sys.path) enthalten. Wie füge ich dieses Verzeichnis dem Pfad hinzu?
Das Setzen der $PYTHONPATH
Umgebungsvariablen ist natürlich eine Lösung, aber ich suche nach einer eleganteren Möglichkeit, dies zu tun. Zum Beispiel werden easy_install
auch installierte Pakete darin abgelegt, mein sys.path sieht ungefähr so aus:
['', '/usr/local/lib/python2.6/dist-packages/keyring-0.5.1-py2.6.egg',
'/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0']
Daher ist der Pfad offensichtlich nicht der Standard, der in die Python-Binärdatei integriert ist.
Gibt es eine einzige Konfigurationsdatei, die die obigen Einträge enthält? Oder wie kann man es ändern?
sitecustomize.py
dassite.py
versucht, es zu importieren und zu ändernsys.path
.Sie können eine neue Datei
/etc/profile.d/local_python.sh
mit dem Inhalt erstellenDamit wird die
PYTHONPATH
Variable für alle angemeldeten Benutzer auf Ihrem System festgelegt.quelle
Ich möchte meine Ergebnisse zur Pfadänderung von Python zusammenfassen. Es gibt zwei Möglichkeiten, dies zu tun.
PYTHONPATH
Jede .pth- Datei, die sich im Standardpfad befindet (siehe unten), wird mit ihrem Inhalt versehen
sys.path
. Das Format dieser .pth- Datei ist einfach: ein (Ordner-) Pfad pro Zeile. Überraschenderweise können die Pfade absolut oder relativ zur .pth- Datei sein.Der Standardpfad ist der Ort, an dem sich der Interpreter befindet, und
<some-prefix>/lib/python<version>/site-packages
in der<some-prefix>
Regel der Ort/usr/
.PYTHONPATH
ist die Umgebungsvariable Ihres Betriebssystems. Auf Unix-Systemen listen Sie sie nach aufenv
. Die globale Änderung solcher Variablen erfolgt über .sh- Skripte im/etc/profile.d/
Ordner, wie von @ TestUser16418 erwähnt.quelle
Wenn Sie beispielsweise das
suds
Modul importieren möchten, das als.egg
Datei verfügbar ist :quelle