[Python-de] Re: Pfade, Modulnamen und import-Statements
"Peter J. Holzer" <[email protected]> Sun, 5 May 2024 02:26:02 +0200
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Organization | LUGA |
| Message-ID | <[email protected]> |
On 2024-05-04 11:12, Marc Haber <[email protected]> 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 -- [email protected] Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected] https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: [email protected]