hatte ich ein Python-Projekt mit vielen Importen wie:Import in der Konsole arbeiten, aber nicht in PyCharm
from src.main.fr.some.module import someclass
und es funktioniert gut, aber meine Kollegen wollten die Importe wie sein:
from fr.some.module import someclass
Dann änderte ich den PYTHONPATH
im activate
Skript meines virtualenv
wie:
export PYTHONPATH="/home/giffon/Documents/wopmars/src/main:/home/giffon/Documents/wopmars/src/test"
und ersetzt alle src.main.fr.some.module
mit fr.some.module
.
Dann habe ich versucht, meinen Code in der Konsole und die Ausgabe war gut (beachten Sie, dass ich die PYTHONPATH
am Anfang meines Codes und /home/giffon/Documents/wopmars/src/main
erscheint wie erwartet).
(WopMars)[email protected]:~/Documents/wopmars/src/main/fr/tagc/wopmars/framework/parsing$ python3 Parser.py
PRINTING THE PYTHONPATH
/home/giffon/Documents/wopmars/src/main/fr/tagc/wopmars/framework/parsing
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/pyparsing-2.1.4-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/cycler-0.10.0-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/pytz-2016.4-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/python_dateutil-2.5.3-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/six-1.10.0-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/numpy-1.11.0-py3.4-linux-x86_64.egg
/home/giffon/Documents/wopmars/src/main
/home/giffon/Documents/wopmars/src/test
/home/giffon/virtualenvs/WopMars/lib/python3.4
/home/giffon/virtualenvs/WopMars/lib/python3.4/plat-x86_64-linux-gnu
/home/giffon/virtualenvs/WopMars/lib/python3.4/lib-dynload
/usr/lib/python3.4
/usr/lib/python3.4/plat-x86_64-linux-gnu
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages
Reading the definition file... -> done.
Checking whether the file is well formed... -> done.
Building the execution DAG... -> done.
Writing the dot file... -> done.
Da ich aber mit pycharm arbeite, wollte ich, dass die IDE meine Änderungen berücksichtigt. Und hier kommen die Probleme.
Ich habe irgendwo gelesen, dass ich, indem Sie folgende den Interpreter Python-Pfad ändern sollte:
Datei> Einstellungen> Projet: wopmars> Projet Interpreter> "Rad"> Mehr ...> „Pfad anzeigen für den ausgewählten Interpreter (WopMars Interpreter ausgewählt)“> +> "Wechseln Sie zu/home/Giffon/Dokumente/wopmars/src/main"> Ok> Ok> bewerben> Ok
Und dann ausführen ich die gleicher Code wie oben:
/home/giffon/virtualenvs/WopMars/bin/python3 /home/giffon/Documents/wopmars/src/main/fr/tagc/wopmars/framework/parsing/Parser.py
PRINTING THE PYTHONPATH
/home/giffon/Documents/wopmars/src/main/fr/tagc/wopmars/framework/parsing
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/pyparsing-2.1.4-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/cycler-0.10.0-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/pytz-2016.4-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/python_dateutil-2.5.3-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/six-1.10.0-py3.4.egg
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages/numpy-1.11.0-py3.4-linux-x86_64.egg
/home/giffon/Documents/wopmars/src/test
/home/giffon/Documents/wopmars/src/main
/home/giffon/virtualenvs/WopMars/lib/python3.4
/home/giffon/virtualenvs/WopMars/lib/python3.4/plat-x86_64-linux-gnu
/home/giffon/virtualenvs/WopMars/lib/python3.4/lib-dynload
/usr/lib/python3.4
/usr/lib/python3.4/plat-x86_64-linux-gnu
/home/giffon/virtualenvs/WopMars/lib/python3.4/site-packages
Traceback (most recent call last):
File "/home/giffon/Documents/wopmars/src/main/fr/tagc/wopmars/framework/parsing/Parser.py", line 12, in <module>
from fr.tagc.wopmars.framework.management.DAG import DAG
ImportError: No module named 'fr.tagc.wopmars.framework.management.DAG'
Sie haben wahrscheinlich bemerkt, dass die /home/giffon/Documents/wopmars/src/main
im PYTHONPATH
Bedeutung scheint, dass die Konfiguration von PyCharm Dolmetschers Weg berücksichtigt wurde. Der Interpreter weiß also, wo er Module finden kann, kann aber fr
... nicht sehen. Gibt es eine Idee, dieses Problem zu lösen?
Es ist wahrscheinlich nicht interessant für dieses Problem zu lösen, aber den Fehler-raising-Code ist:
print("PRINTING THE PYTHONPATH")
for p in sys.path:
print(p)
print("\n\n")
from fr.tagc.wopmars.framework.management.DAG import DAG
Hinweis: Ändern PYTHONPATH
in .profile
oder .bashrc
gab mir die gleichen Ergebnisse
Hinweis 2: wenn ich PYTHONPATH nicht exportiere, gibt mir die Konsole den gleichen Fehler als pycharm
Werfen Sie einen Blick auf diese: http://Stackoverflow.com/a/7334681/620382 – Zulan
Vielen Dank, dachte ich mein Problem und beantwortete meine eigene Frage. –