[Python-de] import Dilemma
Stefan Behnel
behnel_ml at gkec.informatik.tu-darmstadt.de
Die Jan 10 17:39:21 CET 2006
Andreas Pakulat schrieb:
> On 10.01.06 07:46:42, Stefan Behnel wrote:
>> Andreas Pakulat schrieb:
>>> ich hab da ein kleines import-Dilemma. Mein Projekt ist wie folgt
>>> aufgebaut:
>>>
>>> MyProject/
>>> widgets/
>>> widget1.py
>>> ui/
>>> widget1.ui
>>> Ui_widget1.py
>>>
>>> Und ich wuerde gerne eine Klasse aus ui/Ui_widget1.py in
>>> widgets/widget1.py importieren. Ein einfaches
>>>
>>> from ui.Ui_widget1 import Ui_Widget1
>>>
>>> schlaegt fehl.
>> Nein, tut es nicht. Zumindest dann nicht, wenn du dein Programm aus dem
>> Verzeichnis MyProject heraus startest.
>
> Doch auch dann:
>
> andreas at morpheus:~/projects/pyfilmdbsimpleui>python pyfilmdbsimpleui.py
> Traceback (most recent call last):
> File "pyfilmdbsimpleui.py", line 6, in ?
> from widgets.pictureformatwidget import PictureFormatWidget
> File "/home/andreas/projects/pyfilmdbsimpleui/widgets/pictureformatwidget.py", line 2, in ?
> from ui.Ui_pictureformatwidget import Ui_PictureFormatWidget
> ImportError: No module named ui.Ui_pictureformatwidget
> [31010 refs]
> andreas at morpheus:~/projects/pyfilmdbsimpleui>ld ui/
> ld: ui/: No such file: File format not recognized
> andreas at morpheus:~/projects/pyfilmdbsimpleui>ls ui/
> firmwidget.ui soundformatwidget.ui Ui_pictureformatwidget.py
> locationwidget.ui subtitlewidget.ui Ui_releasewidget.py
> mainwidget.ui Ui_firmwidget.py Ui_soundformatwidget.py
> moviewidget.ui Ui_locationwidget.py Ui_subtitlewidget.py
> personwidget.ui Ui_mainwidget.py Ui_versionwidget.py
> pictureformatwidget.ui Ui_moviewidget.py versionwidget.ui
> releasewidget.ui Ui_personwidget.py
Nein, sondern eben nur dann, wenn ui kein Package ist, wie in deinem Fall. Du
braucht eine (ggf. leere) Datei __init__.py im ui Verzeichnis, damit Python
das auch als Package akzeptiert. Siehe Beschreibung des Modulsuchalgorithmus
in der Python-Doku.
Stefan