web-dev-qa-db-ja.com

スクリプトはPyCharmで実行されていますが、コマンドラインからは実行されていません

PyCharmからプログラムを実行しようとすると、IDE=すべて正常に動作しますが、Fedoraに入力すると:

python myScript.py

シェルプロンプトで、モジュールの1つからインポートエラーが発生します。

ImportError : No modue named myDependency

PyCharmは何をしますか?これにより、IDEから起動したときにインタープリターが私の依存関係を見つけることができますか?スクリプトに依存関係を見つけて、singeコマンドで起動できるようにするにはどうすればよいですか?

21
Asics

これを引き起こしている可能性のあるいくつかの可能性があります:

  1. 同じpythonインタプリタ?import sys; print(sys.executable)で確認してください
  2. 同じ作業ディレクトリですか? import os; print(os.getcwd())で確認する
  3. リストである_sys.path_の不一致pythonインポート場所を順次検索します。環境変数が原因である可能性があります。import sys; print(sys.path)で確認してください。
30
wim

これを追加するとうまくいきました:

from os import sys, path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
7
Ohad Lahav

最初のステップとして、PyCharmでプロジェクト設定/ pythonインタープリターに移動し、パスを書き留めます。次に、それをwhich pythonの結果と比較します-一致していますか?そうでない場合、あなたは彼らにそうさせる必要があります。

それが問題なければ、プロジェクト設定/プロジェクト構造でPyCharmがプロジェクトルートとして定義するものを確認してください。スクリプトが配置されているディレクトリですか?そうでない場合は、そのディレクトリからスクリプトを実行するか、ディレクトリを$PYTHONPATH変数に追加する必要があります。

ほぼ間違いなく、それはこれら2つのことの1つです。

5
jwilner

モジュールmyDependencyのPycharmでプロジェクトの依存関係を設定した可能性があります。 Fedoraで同じようにアクセスするには、モジュールを明示的にインポートするか、そのモジュールのEggを作成してインストールします。これはpython site-packagesに移動し、そこからこの依存関係を参照できます。

0