Ich habe die folgende Dateistruktur, die jeweils mit höchstens einer Zeile Code (siehe unten):Ist ihm Kreis Import, wenn absoluten Import mit und __init__.py
a
├── b
│ ├── c.py import a.b.d as d
│ ├── d.py
│ └── __init__.py from a.b.c import *
├── __init__.py
└── main.py import a.b as b
von python -m a.main
läuft, bekomme ich die folgenden Fehler:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/tmp/test/a/main.py", line 1, in <module>
import a.b as b
File "a/b/__init__.py", line 1, in <module>
from a.b.c import *
File "a/b/c.py", line 1, in <module>
import a.b.d as d
AttributeError: 'module' object has no attribute 'b'
Ich bin mir nicht sicher, ob dies durch zirkulären Import verursacht wird. Wenn ich import a.b.d as d
zu from a.b import d
ändere, gibt es keinen Fehler mehr.
von 'b.py' sollten Sie in der Lage sein, nur' c' zu importieren no? –
[This] (https://www.youtube.com/watch?v=0oTh1CXRaQ0) könnte sehr nützlich für die Handhabung von Importen sein, obwohl ein bisschen lang. – quapka
@peter Ich habe einen anderen Beitrag, der das Erstellen und Importieren von benutzerdefinierten Modulen abdeckt. Wenn es dir hilft, bitte upvote. http://stackoverflow.com/questions/37072773/how-to-create-and-import-a-custom-module-in-python/37074372#37074372 – PyNoob