に私は次のように輸入品の多くのPythonのプロジェクトを持っていない:インポートは、コンソールでの作業が、pyCharm
from src.main.fr.some.module import someclass
、それは良い仕事をしていたが、私の同僚は、輸入品は次のようになりたかった:
from fr.some.module import someclass
export PYTHONPATH="/home/giffon/Documents/wopmars/src/main:/home/giffon/Documents/wopmars/src/test"
:
は、その後、私は次のように私のvirtualenv
のactivate
スクリプトでPYTHONPATH
を変更しました
となり、src.main.fr.some.module
はすべてfr.some.module
に置き換えられました。
次に、私のコードをコンソールで試してみましたが、出力は良好でした(私のコードの冒頭にPYTHONPATH
が印刷されており、/home/giffon/Documents/wopmars/src/main
が期待どおりに見えることに注意してください)。
(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.
しかし、pycharmを使用しているため、私はIDEに自分の変更を考慮してもらいたいと思いました。そしてここに問題が来る。
私は次の操作を行って、インタプリタのPythonパスを変更する必要があることをどこかで読ん:
ファイル]> [設定]> [プロジェット:wopmars>プロジェット通訳>「ホイール」> もっと...>「ショーパス選択されたインタプリタ(選択wopMarsインタプリタ )のために」> +> "OK> /ホーム/ giffon /ドキュメント/ wopmars/srcに/メイン"> 玉>玉>適用に
を閲覧し、私が実行上記と同じコード:
/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'
はおそらく/home/giffon/Documents/wopmars/src/main
がpycharm インタプリタのパスの設定が考慮されていることを意味PYTHONPATH
に表示されていることに気づきました。したがって、通訳者はモジュールを見つける場所を知っていますが、fr
を見ることはできません...この問題を解決する方法はありますか?
それは、この問題を解決するために、おそらく興味深いものではありませんが、エラー調達コードは次のとおりです。
print("PRINTING THE PYTHONPATH")
for p in sys.path:
print(p)
print("\n\n")
from fr.tagc.wopmars.framework.management.DAG import DAG
注:.profile
でPYTHONPATH
または.bashrc
私に同じ結果
注2を与えたの変更:私がPYTHONPATHをエクスポートしないと、コンソールはpycharmと同じエラーを返します
これを見てみましょう:http://stackoverflow.com/a/7334681/620382 – Zulan
おかげでたくさん、私は私の問題を考え出しし、自分の質問に答えました。 –