2017-07-07 4 views
1

Ich habe eine neue App namens engineapp erstellt. In dieser App gibt es einen Ordner engine, der ein Scrapy Projekt ist.Kann Module nicht importieren - ImportError: Kein Modul namens

Wenn ich versuche, Modell innerhalb top.py Datei von storage App zu importieren, gibt sie:

from storage.models import TopItem 
ImportError: No module named storage.models 

oder ähnliches Problem, wenn ich versuche, die Einstellungen von scrapy Projekt zu importieren:

from engineapp.engine.engine import settings 

Es returns:

from engineapp.engine.engine import settings 
ImportError: No module named engineapp.engine.engine 

Dies ist, wenn ich scrapy pro laufen Ject von der Befehlszeile.

Beide Importe erstellt PyCharm selbst. Wie Sie sehen können, habe ich __init__() überall hinzugefügt, damit Python diese Dateien erkennen kann.

Wissen Sie, was ich tun soll, um diese Dateien importieren zu können?

enter image description here

+0

Ich hatte ein ähnliches Problem mit verschachtelten Paketen gleichen Namens (wie 'engine' hier), wenn mehrere Ordner entlang des verschachtelten Pfades in Ihrer PYTHONPATH env Variable (Pycharm project settings) sind. Funktioniert es außerhalb von Pycharm? – schwobaseggl

+0

Es funktioniert nicht im Freien. Wie gesagt, ich benutze den Befehl scrapy crawl spider_name. Dort treten diese Fehler auf. PyCharm denkt, dass alles in Ordnung ist. –

+0

@MilanoSlesarik warten, es funktioniert IN pycharm aber nicht vom Terminal? –

Antwort

0

PyCharm zur automatischen Vervollständigung stützt sich auf verschiedene IDE-Einstellungen. Sie haben Ihre realstate_scanner als Quelle root markiert, damit PyCharm die Importe dafür auflösen kann. Von docs:

These roots contain the actual source files and resources. PyCharm uses the source roots as the starting point for resolving imports.

Wenn Sie nicht einige Modul in Python importieren, sollten Sie PATH/PYTHONPATH Variablen zuerst sicher, dass Python-Interpreter machen überprüfen weiß, wo Ihr Modul zu finden.