Ich verwende PyCharm CE ein Projekt mit einem ähnlichen Aufbau wie diese zu entwickeln:Python: ‚Import: Nein Modul namens <my module>‘
test_python/
|-- app
| |-- __init__.py
| |-- mymodule.py
| |-- mymodule.pyc
| `-- test_mymodule.py
|-- config.py
`-- tests
|-- __init__.py
|-- test_config.py
`-- test_models.py
Wenn ich versuche, meine Testskripte wie test_config.py zu laufen , erhalte ich:
$ python tests/test_config.py
Traceback (most recent call last):
File "tests/test_config.py", line 1, in <module>
from config import app_config
ImportError: No module named config
ich viele andere SO Beiträge gelesen haben, die über das Müssen eine init Py-Datei in allen Verzeichnissen sprechen, die Pakete sind (was ich bereits getan haben). Viele schlagen auch vor, mit sys.path
herumzuspielen. Mein Problem mit diesem letzteren Ansatz ist, dass ich mich nie zuvor mit den Pfaden einmischen musste. Ich bin mir nicht sicher, ob es etwas ist, das sich mit meinem Setup geändert hat, aber hier ist es:
Python 2.7 | macOS Sierra | PyCharm CE
Ich habe versucht, eine virtuelle Umgebung mit virtualenv zu installieren, aber habe keinen Unterschied gesehen. Hier ist das Beispielprojekt auf github, wenn Sie es selbst ausführen möchten
'$ python test_models.py' führt zu' ImportError: Kein Modul mit dem Namen app.mymodule ', während' $ python app/test_mymodule.py' nicht fehlschlägt, obwohl beide Testskripte fast identische Inhalte haben import statement – kip2