Python3-Submodule-Setup aktualisiert keine Pfade, wenn es mit -m switch @ ausgeführt wi
Ich habe folgende Projektstruktur:
server/
server.py
__init__.py
sockets/
module.py
__init__.py
Ich setzePYTHONPATH
in ein Verzeichnis über dem Server (zum Beispiel/home/user/server
enthält Server,PYTHONPATH
ist gesetzt/home/user
).
Die Hauptdatei istserver.py
; es importiert Module:
import sockets
from sockets.module import Module
Wenn ich rennepython3 $PYTHONPATH/server/server.py
direkt klappt es einwandfrei. Wenn ich jedoch @ anrupython3 -m server.server.py
es schlägt fehl, obwohl ausdrücklich empfohlen wird, die Hölle des Python-Pfades zu vermeiden, aber es schlägt fehl, das Modul mit einer hässlichen Meldung zu finden:
/usr/bin/python3: Error while finding spec for 'server.server.py' (<class 'ImportError'>: No module named 'sockets')
Warum kann der Modulimport keine Submodule importieren? Wie werden Unterpakete richtig eingerichtet?