[Python-de] problem beim importieren

Bastian Venthur expires-2007 at venthur.de
Don Feb 23 20:48:33 CET 2006


Mike Mueller wrote:

> Ich sehe hier zwei packages, p1 und p2, die 
> zufällig in einen Pfad liegen, wo auch noch zufällig main.py liegt.

> Anders dagegen bei dem Beispiel aus der Doku.

> Ich sehe hier EIN package Sound mit subpackges Formats, Effects und Filters.
> So sollte z.B.
> 
> import Sound.Filters.equalizer as equi
> 
> funktionieren.
> 
> Um dein Beispiel nun genauso funktionieren zu 
> lassen, müsste meiner Meinung nach noch eine 
> __init__.py in src hinzukommen, damit src zum 
> package mit den subpackages p1 und p1 wird.

> Aus dem *übergeordneten* Verzeichnis von src 
> sollte es dann aber *ohne* PYTHONPATH 
> funktionieren. Python sucht dann im aktuellen 
> Pfad und findet das package src und kann mit voll 
> qualifiziertem Import darauf zugreifen.
> 
> Hier liegt meiner Meinung nach das Problem:

> cd ..
> python src/p2/main.py
> 
> sollte hier eigentlich Abhilfe schaffen 
> (vorausgesetzt eine __init__.py liegt in src).
> 
> Klappt's?

Leider nicht :( Ich hab __init__.py in src hinzugefügt und im
Oberverzeichniss von src das moduld aufgerufen. Der fehler bleibt der
gleiche:

$ tree
.
`-- src
    |-- __init__.py
    |-- main.py
    |-- p1
    |   |-- __init__.py
    |   `-- foo.py
    |-- p2
    |   |-- __init__.py
    |   `-- main.py
    `-- unittest
        `-- footest.py

$ python src/p2/main.py
Traceback (most recent call last):
  File "src/p2/main.py", line 4, in ?
    import src.p1.foo
ImportError: No module named src.p1.foo


Das sollte jetzt extakt das gleiche Szenario wie im Beispiel sein --
warum es nicht funktioniert ist mir schleierhaft.


Schöne Grüße

Bastian