Ich habe ein Python-Projekt finden (was ich in einem virtualenv laufen), und das hat die folgende Struktur:Python kann nicht mein Modul
Project
├───.git
├───venv
└───src
├───__init__.py
├───mymodules
│ ├───__init__.py
│ ├───module1.py
│ └───module2.py
└───scripts
├───__init__.py
└───script.py
script.py
import src.mymodules.module1
...
Ich starte das Projekt mit venv aktiviert und aus dem Projekt-Verzeichnis mit dem folgenden Befehl:
(venv)$ python src/scripts/script.py
Das Skript läuft aber gibt aus den folgenden Fehler vor dem Verlassen:
Traceback (most recent call last):
File "src/scripts/script.py", line 1, in <module>
import src.mymodules.module1
ImportError: No module named src.mymodules.module1
ich versucht habe, die Python-Shell läuft und versucht, das Modul von dort zu importieren und es gab keine Fehler. Ich habe _ _init__.py in jedem Verzeichnis innerhalb von src. Ist Python der Ansicht, dass das Arbeitsverzeichnis src/scripts ist? Warum passiert das und wie kann ich src zum Arbeitsverzeichnis machen, wenn das der Fall ist?
Python 2 oder 3? 3 hat eine andere Möglichkeit, Paketmodulimporte zu verarbeiten. – Mego
@Mego Python 2.7 – CrazyJony
Dies könnte helfen http://stackoverflow.com/questions/33773202/how-to-import-a-class-from-a-different-folder-in-python/33773635#33773635 –