[Python-de] PYTHONPATH und sys.path

Christopher Arndt chris at chrisarndt.de
Do Feb 2 17:21:04 CET 2012


On 02.02.12 13:24, Olе Streicher wrote:
> Markus Zapke-Gründemann <markuszapke at gmx.net> writes:
>>> Wie bekomme ich meine eigenen Pakete vor die Site-Packages?
>> Das geht zum Beipspiel mit folgendem Code:
>> ALLDIRS = ['usr/local/pythonenv/PYLONS-1/lib/python2.5/site-packages']
> 
> Nur passiert das innerhalb des Pythonprogramms und nicht
> (wie ich es benötige) von der Shell aus.
  ^^^^^^^^^^^^^^^^^^^^

Nochmal: warum?

Wie wäre es mit:

Project/
    setup.py
    package/
        __init__.py
        ...
        test/
            __init__.py
            test_foo.py


---> test_foo.py <---
import sys
from os.path import abspath, dirname, exists, join

pkg_dir = dirname(dirname(__file__))
prj_dir = dirname(pkg_dir)

if (exists(join(prj_dir, 'setup.py')) and
	exists(join(pkg_dir, '__init__.py'))):
    sys.path.insert(0, abspath(pkg_dir))

...
---> end <---

Nicht dass ich so was generell empfehlen würde* aber wenn du partout
kein virtualenv willst...

* weil sowas spätestens bei Python-Eggs und Zip-Import auf die Nase fällt.

Chris


Mehr Informationen über die Mailingliste python-de