Am 03.02.2012 12:35, schrieb Bernhard Herzog:
Das sollte meinem Verständnis nach nicht passieren. PYTHONPATH sollte an sich so verwendet werden können, wie Du es erwartest: die Verzeichnisse in PYTHONPATH werden vor denen default Verzeichnissen (Standardbibliothek, site-packages, etc.) durchsucht.
Deine Erfahrung widerspricht aber der Implementation, Designidee und auch der Realtität. Sorry, aber du liegst falsch. ;) Wenn du die Implementation in Py_InitializeEx() verfolgst, wirst du feststellen, dass in Py_GetPath() die Umgebungsvariable PYTHONPATH vor initsite() ausgewertet wird. Das wurde gemacht, damit man eine eigene site.py bzw. sitecustomize.py über PYTHONPATH einfügen kann. Der Code in site.py parst alle *.pth Dateien in den site-packages und fügt diese *vorne* in sys.path ein. Probier es mal selbst aus: $ PYTHONPATH=/tmp python2.7 -c "import sys; print sys.path" ['', '/usr/local/lib/python2.7/dist-packages/selenium-2.0rc2-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/rdflib-3.1.0-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/psutil-0.3.0-py2.7-linux-x86_64.egg', '/tmp', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/heimes/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/pymodules/python2.7/gtk-2.0', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7'] Christian