webentwicklung-frage-antwort-db.com.de

Das Importieren des Moduls funktioniert nicht

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)

 enter image description here

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

5
Peni

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.

5
Cédric Julien

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

0
Zcode

Ü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 

0
Rohith