[Python-de] Python 2.7: sys.path vs. PYTHONPATH

Hartmut Goebel h.goebel at goebel-consult.de
So Sep 18 14:15:46 CEST 2011


Am 18.09.2011 13:39, schrieb Ole Streicher:
> Ja. Unter 2.6 war die Verzeichnisstruktur unter
> /mylocal/python/lib64/python2.7/site-packages/ folgende:
>
> pyfits/
> otherpkg/ usw.
>
> Jetzt ist sie
>
> distribute-0.6.19-py2.7.egg/distribute/
> pyfits-3.0-py2.7-linux-x86_64.egg/pyfits/
> otherpkg-0.3.3-py2.7.egg/otherpkg/ usw.

Dann hast Du bei 2.6 anders installiert. Kann es sein, dass Du unter 2.6 
setuptools/ditstribute nicht installiert hattest, als Du das andere 
installiert hast?

Wenn Du sagst, bei 2.6 ging es, bei 2.7 nicht, dann prüfe bitte, ob alle 
Deinen Parameter wirklich unverändert sind. Oder noch besser: Mache 
einen erneuten Test mit 2.6.

> OK, das erklärt einiges. Das heißt (ich kann es gerade nicht testen), es
> sollte reichen, so etwas zu schreiben?

Nein, genügt nicht. Siehe `pydoc site`.

> Mir ist das nicht ganz verständlich: ich hatte doch beim Installieren
> "--prefix=/mylocal/python" angegeben; warum wird da jetzt zusätzlich ein
> Verzeichnis "pyfits-3.0-py2.7-linux-x86_64.egg/" eingefügt?

Weil easy_install/setuptools/distribute eggs so installiert.

> beginnt und unmittelbar aufgerufen wird. Ich habe daher keinen Zugriff
> auf das Environment des Nutzers.

Häh? Entweder, Du bis für die Installation zuständig, dann hast Du 
Zugriff auf das Environment des Anwenders. Oder Du hast keinen Zugriff 
auf das Environment des Anwenders, dann bist Du auch nicht dafür 
Verantwortlich, dem Anwender eine funktionsfähige Umgebung zu schaffen.

> Ich dachte auch immer, dass genau dafür
> der sys.path vorgesehen ist und PYTHONPATH nur dazu dient, den nochmal
> von außen zu setzen?

Genau umgekehrt: PYTHONPATH ist der primäre Weg, den Modul-Suchpfad zu 
setzen. Denn der ist immer abhängig von der Betriebssystem-Umgebung (wo 
ist das Zeug installiert). Damit ist es Aufgabe des Betriebssystems, das 
der Anwendung mitzuteilen.

>> Oder verwende virtualenv.
> Ist zumindest nicht unter docs.python.org zu finden.
http://lmgtfy.com/?q=python+virtualenv


-- 
Schönen Gruß - Regards
Hartmut Goebel
Dipl.-Informatiker (univ.), CISSP, CSSLP

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de

Monatliche Kolumne: http://www.cissp-gefluester.de/
Goebel Consult ist Mitglied bei http://www.7-it.de



Mehr Informationen über die Mailingliste python-de