web-dev-qa-db-ja.com

IntelliJ Pythonプラグインとクラスパスの実行

/ home/myself/workspace/Project1にプロジェクトがあり、Python 2.7.3 VirtualenvからSDKを作成しました。
このプロジェクトでは、アクセス可能なディレクトリにある外部コードを使用しています。/home/myself/LIBRARY;このディレクトリには、コード、ドキュメントなどを含むいくつかのディレクトリが含まれています...
たとえば、/ home/myself/LIBRARY/mymodule/important_util.pyにあるモジュール「important_util」があります。

ここで、SDKのクラスパスにdir/home/myself/LIBRARY全体を追加しました。エディターウィンドウでは、問題なく表示されます。インポートと呼び出しが認識され、LIBRARYディレクトリのコードをナビゲートすることもできます。

問題は、プログラムを実行しようとすると、LIBRARYを使用した最初のインポートで失敗することです!!!

Traceback (most recent call last):
   File "/home/myself/workspace/Project1/my_program.py", line 10, in <module>
      from mymodule import important_util as ut 
      ImportError: No module named mymodule

Sourcesセクションの "Global Libraries"セクションにも同じディレクトリを追加しようとしましたが、うまくいきませんでした。

このコードをRunクラスパスに追加する方法が見つからないようです。どうすればこれを実行できますか?

23
mdm

mymoduleディレクトリに__init__.pyがあることを確認してください:

__init__.pyファイルは、Pythonがディレクトリをパッケージを含むものとして扱うようにするために必要です。これは、文字列などの一般的な名前のディレクトリが、後でモジュール検索パスで発生する有効なモジュールを誤って非表示にしないようにするために行われます。最も単純なケースでは、__init__.pyを空のファイルにするだけでなく、パッケージの初期化コードを実行したり、後で説明する__all__変数を設定したりすることもできます。 ©

[〜#〜] update [〜#〜]:IntelliJ IDEAでは、追加のディレクトリをModule Dependenciesとして追加するか、Librariesとして構成する必要があります(Python SDKのClasspathタブの代わりにDependenciesに追加されます):

Dependencies

このフォルダ(D:\dev\lib)がPYTHONPATHに追加され、機能することを確認しました。

15
CrazyCoder

IntelliJ 14では少し異なります。あなたは次のようなモジュール/卵です:

  • [ファイル]-> [プロジェクト構造]に移動します
  • モジュールを選択し、「依存関係」タブを選択します
  • 「+」アイコンをクリックし、「ライブラリ」を選択します
  • [新しいライブラリ]をクリックし、Javaを選択します(変だと思います...)
  • ここで、複数のモジュール/ Eggと「OK」を選択します。
  • カテゴリから「クラス」を選択します。
  • 新しいライブラリに名前を付けます。「My Python not Java Library "
  • そして最後に「選択を追加」をクリックします
12

2017.1のバージョンから、追加が再度変更されました。 ファイルメニューにプロジェクト構造がありません。現在の手順を書き留めます:

  1. 設定/設定に移動します。 ファイル->設定(IDE名-> macOSの設定)

  2. 選択ビルド、実行、展開

enter image description here

  1. Pythonインタープリターを選択します

  2. プロジェクトインタープリターのドロップダウンメニューで選択し、Pythonプロジェクトに必要なバージョンのパスのパスを選択します。

enter image description here

  1. [適用]をクリックし、IntelliJにpythonパッケージのインデックスを作成させます。

これですべてのエラーがなくなり、プロジェクトで使用されているPythonが外部ライブラリのリストに表示されます。

enter image description here

ハッピーコーディング

1
Mayank Patel