2014-07-04 3 views
13

Ich habe folgende Paketstruktur:Warum beklagt PyCharm fehlende Module bei absoluten Importen?

projects/ 
    package_name/ 
     __init__.py 
     model.py 

In __init__.py Ich habe folgende Importanweisung:

import package_name.model as model 

PyCharm beschwert mich hier, dass es kein Modul package_name benannt ist. Aber wenn ich das Paket aus dem Terminal importiere, während es in projects/ steht, importiert Python das Paket ohne Probleme. Mein Arbeitsverzeichnis in PyCharm ist auch projects, und ich habe es meiner PYTHONPATH hinzugefügt.

Warum beklagt sich PyCharm, obwohl es anscheinend gut funktioniert und wie repariere ich es?

+0

möglich Duplikat von [Pycharm (Python IDE) schließt Django-Module nicht automatisch ab] (http://stackoverflow.com/questions/4906246/pycharm-python-ide-doesnt-auto-complete-django-modules) – laffuste

+2

Sieht nicht genau wie ein Duplikat aus. Die Antworten dort haben es für mich nicht gelöst. –

Antwort

10

PyCharm muss wissen, welche Dateien in Ihrem Baum Python-Quellen sind, damit es Ihre Modulstruktur ermitteln kann.

Datei öffnen -> Einstellungen -> Projekt: -> Projektstruktur

Dann markieren projects als Quellverzeichnis.

+0

omg! Es klappt! 8) Ich weiß, dass das ein solch verzögerter Kommentar ist, aber ich bin jetzt so glücklich, eine Million Dank !! – Bloke

+0

Dank Ihrer Antwort sah ich, dass der Interpreter für meinen Ordner "projects" auf Python 2.7 eingestellt war und ich Module aus 3.4+ importieren wollte. –

+0

Was ist, wenn der Stamm Ihres Projekts das Paket ist, das Sie importieren müssen? Z.B. Sie haben 'package/module.py' und' package/test/test_module.py'. Im letzteren Fall versuchen Sie, 'package.module 'zu importieren, was gut funktioniert, wenn Sie Ihre Tests tatsächlich von außerhalb des Pakets ausführen, was PyCharm jedoch immer noch nicht mag. – dmh

-2

Das liegt daran, dass PyChar eine GUI-Anwendung ist, was bedeutet, dass es keine Ihrer Umgebungsvariablen teilt, die normalerweise in Ihren Home-Profil-Skripten definiert sind.