Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Das Funktioniert unter PyCharm auch ganz gut. Doch sobald ich die Main unter der Konsole aufrufen will, bekomme ich ich die Fehlmeldung. Warum läuft es unter PyCharm unter der gleiche Aufruf in der Konsole sagt mir, dass er das Modul nicht finden kann?
python -u "/home/niesel/PycharmProjects/abu_2019/src/abu2019/main.py"
Traceback (most recent call last):
File "/home/niesel/PycharmProjects/abu_2019/src/abu2019/main.py", line 1, in <module>
from src.abu2019.initui.init_abu_mainwindow import InitApplication
ImportError: No module named src.abu2019.initui.init_abu_mainwindow
@ nieselfriem :
werden denn die anderen Module gefunden ?
der Fehler kommt ja vom ersten Import, somit werden die anderen gar nicht überprüft. Kommentiere mal den ersten Import.
ansonsten mal :
Wenn du mit Modulen arbeitest, musst du dafür sorgen, dass das Modul beim Import auch gefunden wird. Am einfachsten ist es, wenn sich alle Moduldateien eines Projektes im selben Verzeichnis befinden. Wenn das Skript eine Importanweisung import modul besitzt und sich die zugehörige Moduldatei modulname.py im gleichen Verzeichnis befindet, hast du keine Probleme. Es besteht noch eine weitere Möglichkeit, das Modul ‘sichtbar‘ zu machen, indem du die Verzeichnisliste sys.path erweiterst. So kannst du einen eigenen Ordner für Module erstellen, in welchem du sämtliche Moduldatei(en) mit den Klassendefinitionen speicherst. In dem Skript, in dem ein Modul importiert werden soll, ermöglicht die Anweisungsfolge
@nieselfriem: `src` soll garantiert nicht im ``import`` auftauchen. Das ist ja Bestandteil von jedem Projekt das so erstellt wurde, also auch bei jedem anderen von Dir und auch von anderen Leuten. Da heisst jeder hätte auf oberster Ebene ein `src`-Package und man könnte nur eines davon installieren und alle anderem kämen dem und auch den anderen in die Quere. `src` ist Kurz für `source`, also Quelltext. Das macht auch vom Namen her keinen Sinn für ein Package.
Neben dem setzen der Pfadvariablen würde man sich wohl auch eher ein virtualenv erstellen. Allerdings muss man auch dort dafür sorgen das die Verzeichnisse *in* `src` für Importe erreichbar sind. Wobei ein `src`-Unterverzeichnis auch eher etwas für Software ist, die man normal installieren würde, also mit einer `setup.py` und was da so dazu gehört.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman