Ich habe ein Django-Projekt (aber ich denke, es ist hier noch nicht bekannt), bei dem ich versuche, ein Skript hinzuzufügen, das ich zuvor gemacht habe. Also habe ich es in ein Unterverzeichnis meines Projekts gestellt, und ich habe diese Struktur (Ich weiß, dass es im Moment ein bisschen durcheinander ist, aber es wird nicht genau so bleiben)
Aus views.py möchte ich main.py importieren (insbesondere die Funktion excelToXml). Nach Recherchen im Internet habe ich den Code gefunden, den ich in views.py kopiert habe. Wenn ich es nicht richtig verstanden habe, füge es der Variablen $ PATH das übergeordnete Verzeichnis von first_page und zwar jedes Unterverzeichnis hinzu
CURRENT = os.path.dirname(os.path.abspath(__file__))
PARENT = os.path.dirname(CURRENT)
sys.path.append(PARENT)
from ExcelToXML.main import excelToXml
Ich habe auch eine Datei _INIT.PY _ im Verzeichnis ExcelToXML erstellt. Diese Datei bleibt leer.
Aber selbst ich habe alles getan, was ich immer noch bekomme, wenn ich den Django-Server betreibe
Datei "c:\Benutzer\CRA\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\Django\bin\DevisVersOpen\DevisVersOpen\urls.py", Zeile 18, im Modul
aus first_page-Importansichten
Datei "c:\Benutzer\CRA\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\Django\bin\DevisVersOpen\first_page\views.py", Zeile 13 im Modul
von ExcelToXML.main importieren Sie excelToXml
ModuleNotFoundError: Kein Modul mit dem Namen 'ExcelToXML'
Ich habe keine Lösung gefunden, die ich im Internet verstehen konnte, daher weiß ich nicht, wie ich das lösen kann
Ihre Verzeichnisstruktur lässt mich denken, dass Sie versuchen sollten, folgendermaßen zu importieren:
from first_page.ExcelToXML.main import excelToXml
da sich ExcelToXML unter dem Modul first_page befindet, wird es als Untermodul von first_page angesehen.
Okay hallo, die Lösung, die Sie gefunden haben, ist (glaube ich) ein Durcheinander, Sie sollten die offizielle Dokumentation darüber lesen https://docs.python.org/3.6/tutorial/modules.html#packages .
Kurz gesagt, fügen Sie einfach from .idea.main import excelToXml
..__ hinzu. Wenn dies nicht funktioniert, benennen Sie den .idea
-Ordner in idea
(ohne Punkt) um und fügen Sie in Ihrem views.py
diese Zeile hinzu: from idea.main import excelToXml
Überprüfen Sie dies, um zu erfahren, was init .py-Datei ist Wozu dient __init__.py?
Die Datei init .py sollte in jedem Verzeichnis und in Unterverzeichnissen vorhanden sein, deren Klassen für den Import sichtbar gemacht werden sollen. In Ihrem Fall habe ich den Verdacht, dass das übergeordnete Verzeichnis nicht die Datei init .py enthält. Fügen Sie die Datei im übergeordneten Verzeichnis hinzu und importieren Sie sie wie folgt
first_page.ExcelToXML importieren