Ich habe mir die meisten Links zu relativen Importen und insbesondere zu den Top-Level-Paketen angeschaut, aber ich habe immer noch Schwierigkeiten, meinen Verwandten zu finden Importcode zum arbeiten. Als Referenz verwende ich Python 3.6.Versuchter relativer Import über das Paket der obersten Ebene hinaus mit python -m
Ich habe ein Verzeichnis von Tests, die ich ausführen möchte, isoliert in einem eigenen Verzeichnis, Tests. Ich möchte alle Modulpakete in eine Datei namens InputTests.py importieren. Hier ist das Format meines Projektverzeichnisses.
Innerhalb InputTests.py, ich versuche Module auf diese Weise zu importieren:
from .. import modules
ich den Fehler:
File "/Users/wfehrnstrom/Desktop/meeting_minutes/tests/InputTests.py",
line 2, in <module>
from .. import modules
ValueError: attempted relative import beyond top-level package<code>
aber ich bin mit dem Befehl: python -m tests.InputTests
, was dem Interpreter angeblich sagt, dass er alles von meinem obersten Verzeichnis aus ausführen soll. Ich denke also, meine Frage ist, warum meine relative Import-Anweisung nicht funktioniert, wenn ich bedenke, dass ich dies aus dem obigen Paket heraus ausführe. Dieser Stack-Überlauf Post schien zum Detail, was ich brauche, aber ihre Lösung, mit -m läuft für mich nicht funktioniert: How to do relative imports in Python?
Darüber hinaus scheint es einen Widerspruch zu diesem in diesem Stack-Überlauf Post zu sein: Relative importing modules from parent folder subfolder
Der letzte Beitrag scheint darauf hinzuweisen, dass die Kontextbedeutung von .. und. Ändern Sie nicht basierend auf der Stelle, an der Sie Ihren Python-Befehl ausführen, der erste besagt jedoch, dass dies der Fall ist. Das hat mich extrem verwirrt. Kann jemand die relativen Importe klären und diese Diskrepanz auflösen? Vielen Dank.