Ich habe ein Modul geschrieben (eine Datei my_mod.py
, die sich im Ordner befindet my_module
). Derzeit arbeite ich in der Datei cool_script.py
, die sich im Ordner befindet cur_proj
. Ich habe den Ordner in PyCharm mit File - open geöffnet (und ich gehe daher davon aus, dass es sich um ein PyCharm-Projekt handelt).
In ProjectView (CMD-7) kann ich mein Projekt cur_proj
(in rot) und unter "Externe Bibliotheken" sehen my_module
. In cool_script.py kann ich schreiben
from my_module import my_mod as mm
und PyCharm macht sogar Vorschläge für my_mod. So weit, ist es gut.
Wenn ich jedoch versuche, cool_script.py auszuführen, sagt PyCharm "Kein Modul mit dem Namen my_module".
Das kommt mir komisch vor, weil
A) Im Terminal (OS 10.10.2), in Python, kann ich das Modul problemlos importieren - es gibt einen entsprechenden Eintrag im PYTHONPATH in .bashrc
B) In PyCharm - Einstellungen - Projekt cur_proj - Projektinterpreter - CogWheel neben Python-Interpreter - mehr - Pfade für das ausgewählte Interpreter-Symbol anzeigen, werden die Pfade von PYTHONPATH angezeigt (wie ich denke, dass sie sollten).
Warum wird der Fehler angezeigt, wenn ich versuche, cool_script.py auszuführen? - Was vermisse ich?
Anmerkungen:
- Ich deklariere keine andere / spezielle Python-Version oben in cool_script.py
- Ich habe dafür gesorgt, dass der Weg zu
my_module
korrekt ist - Ich lege
__init__.py
Dateien (leere Dateien) sowohl inmy_module
als auch incur_proj
- Ich benutze nicht
virtualenv
Nachtrag 2015-Feb-25
Wenn ich in PyCharm zum Ausführen - Konfigurationen bearbeiten gehe, werden für mein aktuelles Projekt zwei Optionen mit einem Häkchen ausgewählt: " Hinzufügen von Inhaltswurzeln zu PYTHONPATH " und " Hinzufügen von Quellwurzeln zu PYTHONPATH ". Wenn ich beide deaktiviert habe, kann ich mein Modul laden.
So funktioniert es jetzt - aber warum ?
Weitere Fragen stellten sich:
- Was sind "Inhaltswurzeln" und was sind "Quellwurzeln"? Und warum bricht das Hinzufügen von etwas zum PYTHONPATH irgendwie?
- sollte ich diese beiden Optionen ständig deaktivieren (also auch in den Standardeinstellungen, nicht nur in den projektspezifischen Konfigurationen (linker Bereich des Dialogfelds Konfigurationen ausführen / debuggen)?
Enable Django Support
der Einstellungen Languages & Frameworks -> Django
in der Pro-Version von PyCharm. Es wurde eine Django-Konsole geöffnet, die die Importprobleme verursachte.
from foldername.mymodule import mymethod
. Eine andere Sache, die ich tun musste, ist, den leeren Ordner _init .py in alle Ordner einzufügen , die Sie verwenden würden, um zu Ihrem Modul zu gelangen, fallsfrom parentfolder.childfolder.mymodule ...
Sie init in zwei Ordnern benötigen würden. Abhängig davon, wo sich die Ordner relativ zueinander befinden, benötigen Sie möglicherweise ein Paket der obersten Ebene,sys.path
wie in dieser Antwort beschrieben