Ich kann nicht scheinen, darüber zu kommen und nicht ganz verstehen, was passiert. Ich habe ein Verzeichnis mit zwei Klassendateien darin. Mit der REPL aus diesem Verzeichnis kann ich beide Dateien importieren und ihre Logik ausführen. Von ihrem übergeordneten Verzeichnis, von dem main() ausgeführt wird, ist jedoch nur eine Klassendatei sichtbar, pagetable.Benutzerdefinierte Python-Modul nicht importieren
Die Projektstruktur zur Zeit ist,
project/
src/
__init__.py # empty
pagingsimulation.py # main() imports memory
process.py
memory/
__init__.py # imports pagetable.py
pagetable.py # visible
page.py # error
pagingsimulation.py konnte Import Speicher/und instanziiert pagetable.PageTable, aber sobald ich page.py erstellt und hatte pagetable.py Import page.py, pagingsimulation. Py wirft nun diesen Fehler bei der Ausführung.
Traceback (most recent call last):
File "pagingsimulator.py", line 5, in <module>
import memory
File "src/memory/__init__.py", line 1, in <module>
from .pagetable import PageTable
File "src/memory/pagetable.py", line 1, in <module>
import page
ImportError: No module named 'page'
im Speicher/__ init__.py ich derzeit haben,
from .pagetable import PageTable
... aber haben viele andere Variationen ohne Erfolg versucht.
Ich habe mehrere Ansätze ausprobiert und habe dies für eine Weile recherchiert und vielleicht ist es etwas, was ich an dieser Stelle nicht sehen kann. Was verhindert, dass sich meine benutzerdefinierten Module gegenseitig importieren, wenn sie von main() ausgeführt werden?
Nach dem Verzeichnis-Layout an der Spitze, 'src' und' memory' sind Geschwisterverzeichnisse, aber die Traceback bezieht sich auf 'src/memory/...' –
'importieren Seite' funktioniert nur, wenn das übergeordnete Verzeichnis ('project/src/memory') ist auf deinem' PYTHONPATH'. –
@JohnGordon Das war ein Formatierungsfehler. Danke für den Fang. Speicher ist ein Unterverzeichnis zu src (d. h., project/src/memory / –