Pythonモジュールのインポートはコマンドラインからは機能しますが、PyCharmからは機能しません


8

私のデフォルトのPythonバイナリは、PythonのAnacondaディストリビューションのバイナリに設定されています。これは/home/karnivaurus/anaconda/bin/pythonにあり、.bashrcファイルに次のように追加することでこれをデフォルトにしていますexport PATH=/home/karnivaurus/anaconda/bin:$PATH

caffeはと呼ばれるPythonパッケージも持っています。これはにあり/home/karnivaurus/caffe/distribute/python.bashrcファイルに次を追加することにより、パッケージ検索パスにこれを追加しましたexport PYTHONPATH=${PYTHONPATH}:/home/karnivaurus/caffe/distribute/python

これで、という名前のシンプルなPythonファイルが作成されtest.py、次の内容が含まれます。

import caffe
print "Done."

python test.py端末に入力してこれを実行すると、正常に実行され、「完了」と出力されます。私が抱えている問題は、これをPyCharm IDEで実行するときです。PyCharmでは、インタープリターをに設定しました/home/karnivaurus/anaconda/bin/python。しかしtest.py、PyCharmで開いてIDEでファイルを実行すると、次のエラーが発生します。

ImportError: No module named caffe

だから私の質問は:caffePythonスクリプトを実行するときにPyCharmがモジュールを見つけられないのはなぜですか?しかし、ターミナルからスクリプトを実行するときにそれを見つけることができますか?

ありがとうございました!


2
PyCharmは.bashrcbash固有の設定ファイルであるため、を気にしないと思います。その変数をPyCharmまたは例.profile
バイトコマンダー

回答:


11

ByteCommanderがコメントで述べたように、PyCharmはbashrcを使用しないため、ライブラリの場所がわかりません。

インタープリターを追加したのと同じ画面で、ホイールアイコンが表示されます。それをクリックすると、メニューが表示され、さらにクリックできます。次のような画面が表示されます。

PyCharmインタープリターの構成

通訳を選択し、最後のボタンをクリックしてください。これはこのウィンドウを開くはずです:

インタープリターパスの構成

プラスアイコンをクリックすると、ライブラリの独自のパスを追加できます。


2
これは、GUIよりコマンドラインを使用した方が指示が簡単な理由の良い例です。
ハビエルリベラ

ありがとう。これは、バイナリライブラリとPythonモジュールの両方のパスを追加する方法ですか?または、Pythonモジュールを「ソースルート」に追加する必要がありますか?
Karnivaurus、2015年

1
どちらも。そのモジュールに変更を加える場合にのみ、ソースルートを使用する必要があります(完成させるためにソースルートに追加してドキュメントを作成したり、「ソースに移動」したりする必要はありません)。
Javier Rivera

5

Ubuntuランチャーから起動したプログラムは読み取れません.bashrc。PyCharmでパスを設定する代わりに、ByシェルからPyCharmを起動するだけで、で設定した環境変数にアクセスできます.bashrc


ランチャーから起動したときにプログラムが.bash_rcファイルを読み取る方法はありますか?
User007

0

次のショートカット(Ctrl+ Alt+ S)を開き、(Project:xxxx)をクリックします。(Project Structure)を選択して(/home/yourUser/PycharmProjects/XXXX/venv/bin)を選択し、(Excluded)または(Alt+ E)を右クリックします。

(+コンテンツルートの追加/home/ yourUser/PycharmProjects/XXXXX/venv/bin)をクリックして、次の場所()を指しているかどうかを確認し、[OK]をクリックします。IDEを閉じて、もう一度開きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.