On 2024-05-04 11:12, Marc Haber <mh+python...@zugschlus.de> wrote: > ich hab mal eine Verständnisfrage. > > Gegeben sei ein Verzeichnis . und ein Programm ./keks. > Weiterhin sei die Klasse MyClass1 in d/mc1.py und die Klasse MyClass2 in > d/mc2.py definierrt. > > Wenn ich nun in keks die Klasse MyClass2 benutzen möchte, schreibe ich > "from d.mc2 import MyClass2". Wnn ich in d/mc1.py dasselbe tun möchte, > muss ich dort "from mc2 import MyClass2" schreiben,
Nein, das funktioniert nicht: #v+ % ./keks Traceback (most recent call last): File "/home/hjp/tmp/marc/./keks", line 3, in <module> from d.mc1 import MyClass1 File "/home/hjp/tmp/marc/d/mc1.py", line 1, in <module> from mc2 import MyClass2 ModuleNotFoundError: No module named 'mc2' #v- Es muss #v+ from d.mc2 import MyClass2 #v- heißen. Ob Du das Modul von keks oder von einem anderen Modul aus importierst, macht keinen Unterschied. > kann also Code, der > "verwandte" Module benutzt, nicht frei verschieben. > > Ist das so gedacht, oder verpass ich da was? Wie Hartmut schon geschrieben hat, kannst Du relative Imports verwendenm, hier also #v+ from .mc2 import MyClass2 #v- Ob das für Deinen Code sinnvoll ist, musst du selbst entscheiden. hp _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-le...@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: arch...@mail-archive.com