VMとPyCharmでカスタムPYTHONPATHを設定するにはどうすればよいですか?


86

Pythonプラグインとリモートインタープリター機能を備えたIntelliJを使用して、VagrantVMと通信しています。VMのインタープリターを使用するようにリモートインタープリターを正しくセットアップします。ただし、VMでカスタムPYTHONPATHを使用しているので、IntelliJにそのパスを認識させ、開発時にそのパスにモジュールを含めてもらいたいと思います。

VMでカスタムPYTHONPATHを使用するようにIntelliJ / PyCharmのリモートインタープリターを構成するにはどうすればよいですか?


私はまさにこの問題を抱えていますが、共通のスキームに従った多くのプロジェクトがあり、現在(Emacsで)すべてを動的にセットアップしています。Pycharmでプロジェクトごとに設定するのは負担のように見えます。
AdamC 2014

回答:


125

PyCharm 5(または2016.1)の場合、次のことができます。

  1. 「設定」>「プロジェクトインタープリター」を選択します
  2. 通訳セレクターの右側に「...」ボタンがあり、それをクリックします
  3. 「もっと...」を選択します
  4. 新しい「プロジェクト通訳者」ウィンドウをポップアップします
  5. 右端のボタンを選択します(「選択したインタプリタのパスを表示」という名前)
  6. 「インタプリタパス」ウィンドウをポップアップします
  7. 「+」ボタンをクリックし、目的のPYTHONPATHディレクトリ(Pythonモジュールを含むフォルダ)を選択して、「OK」をクリックします。
  8. 完了!楽しめ!

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください ここに画像の説明を入力してください


これは私のプロジェクトで行っていることなので、面倒です。プロジェクトA、プロジェクト共通、プロジェクトテストがあります。プロジェクトテストで単体テストを実行するために、プロジェクトの依存関係を追加して、プロジェクトテストがプロジェクトAと共通に依存するようにしましたが、それでもAと共通のフォルダーを手動でPYTHONPATHに追加する必要があります。
thinkanotherone 2016年

これにより、そのインタプリタのグローバルPYTHONPATHにディレクトリが追加されます。プロジェクトだけではありませんか?
レイ

@Rayはい、グローバルインタプリタの設定が変更されるようです。ただし、プロジェクトごとに異なるvirtualenvを使用し、それらに異なるPYTHONPATHを設定できます。
phil 2016年

最初にインタプリタをプロジェクトのインタプリタとして設定する必要があることに注意してください。そうしないと、左端のボタンが無効になります
ospider 2017年

OSXでは、Cmd + Shift + Periodは、選択ダイアログに非表示のフォルダーを表示します(例:/ usr)-パスを入力する方法がないようです。
フラッシュ

83

PYTHONPATHを編集したり、コード検査のインポート解決の問題を修正したりする手順は次のとおりです。

  1. 環境設定を開きます(Macの場合、キーボードショートカットはです⌘,)。

メニューから設定にアクセスする方法

  1. Project Structure左下のサイドバーで探してくださいProject: Your Project Name

  2. 右側のサイドバーでモジュールを追加または削除します

Pycharm4.5のプロジェクト構造設定

編集:PyCharm4.5のこのスクリーンショットを更新しました


これはまだ適用されますか?私はおそらく最新のPyCharmプロフェッショナルを持っていますが、それらのカテゴリーの多くが欠けています。プロジェクト構造を含む!しかし、これを投稿していただきありがとうございます!!!
R Claven 2015

1
こんにちは。最新バージョンのPyCharm4.5のスクリーンショットを更新しました。サイドバーの設定を再編成したようです。
ビョルン2015

実は私はあなたに大規模な感謝を借りています。プロジェクトの設定ではなく、「デフォルト設定」をいじっていました。ここでのあなたの答えは私がこれを理解するのを助けました、そしてそれから私は多くの矛盾を解決しました、そしてそれはうまくいきました。ありがとうございました!
R Claven 2015

これをグローバルに行う方法はありますか?悪臭を放つすべてのプロジェクトに/Library/Python/2.7/site-packagesと/usr/local/lib/python2.7/site-packagesを追加します。
jeremyjjbrown 2015年

はい@jeremyjjbrown、「Project Interpreter」をクリックして、必要なサイトパッケージを含むインタープリターパスを選択することで、それができると思います。この質問は、プロジェクト固有のパッケージをプロジェクトで利用できるようにすることへの回答にすぎませんでした。要件.txtを使用して、すべてのdepsプロジェクトをpycharmに追加することもできます。
ビョルン

16

私にとっての解決策はに行くことでした

Run > Edit Configuration > Defaults > Python

次に、

  • 「コンテンツルートをPYTHONPATHに追加」および
  • 「ソースルートをPYTHONPATHに追加する」

チェックボックス、および「作業ディレクトリ」フィールドの設定。

独自の実行/デバッグ構成を設定している場合は、

Run > Edit Configuration > Python > [Whatever you called your config]

そこで編集します。

私の問題は、リポジトリ全体をPyCharm 2016.2プロジェクトに含めたいと思っていたのですが、実際のpythonソースコードルートはサブフォルダーだけでした。フォルダを右クリックして「ソースルート」として追加しました

Mark directory as > Source Root

次に、[実行/デバッグ]構成メニューの[コンテンツルートをPYTHONPATHに追加する]チェックボックスをオフにし、[ソースルートをPYTHONPATHに追加する]チェックボックスをオンにします。次に、次のようにしてフォルダのパスを確認しました。

import sys
logger.info(sys.path)

これは出力しました:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

しかし、修正なしでそれは言った:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root',                   <-- NOT WANTED
    '/usr/lib/python3.4', 
    '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

つまり、プロジェクトのルートフォルダが含まれています。これは私にとって経路を台無しにしました。


ありがとう、私はPythonの専門家ではないので、どのインポートパスに到達できるかをどのように確認するのか疑問に思っていました。(そのsys.path部分)
Rastikan 2017

実行構成をすべて更新する必要があるため、これは理想的ではありません。
StephenBoesch

@javadbaすべての構成で機能させたい場合は、Run > Edit Configuration > Templates > Python代わりににアクセスしてください。
アンドレC.アンデルセン

@AndréC.Andersenthx!私はこれまでテンプレートをたことがありませんでした。
StephenBoesch

13

これはPyCharmコミュニティ2019.1で行われました

  1. プロジェクト設定に移動します 設定
  2. プロジェクト構造に移動し、追加するディレクトリを右クリックして、[ソース]をクリックします。 プロジェクト構造-ソースを追加

これにより、ディレクトリがpythonpathに追加されます。 プロジェクト構造-ソースを追加した後


3

正解フィルの更新Pycharmのより新しいバージョン(例:2019.2)のために提供さ。

[ファイル]> [設定]に移動してプロジェクトを見つけ、[プロジェクトインタープリター]を選択します。次に、選択したプロジェクトインタープリター(以前は...)の右側にある歯車の付いたボタンをクリックします。

ここに画像の説明を入力してください

ドロップダウンメニューから[すべて表示... ]を選択し、開いたダイアログで、フォルダーと2つのサブフォルダーのあるアイコンをクリックします。

ここに画像の説明を入力してください

現在のインタプリタパスを含むダイアログが表示されます。+をクリックしてさらに1つ追加します。


ありがとうございました!!!同僚と私は、自分の環境に合わせて彼の環境を設定することと戦ってきました。これらの手順を実行した記憶はありませんが、そこには重要なパスがあります(「ユーザーによって追加された」とさえ言われます)。
Drarok

2

私の経験では、PYTHONPATH変数を使用することは、Windows上のVENVでうまく機能しないため、通常は間違ったアプローチです。ロード時にPYTHONは、パスの前にPYTHONPATHを追加することでパスを準備します。これにより、慎重に準備されたVenvがグローバルサイトパッケージを優先的にフェッチする可能性があります。

PYTHONパスを使用する代わりに、関連するsite-packagesディレクトリにpythonpath.pthファイルを含めます(ただし、カスタムpythonは、異なる場所でそれらを検索する場合があります。たとえば、enthoughtは.pthファイルをpython.exeと同じディレクトリで検索します)。各仮想環境。これはPYTHONPATHのように機能しますが、Pythonのインストールに固有であるため、Pythonのインストール/環境ごとに個別に設定できます。VENVのPythonをPythonインストールとして使用するだけで、PycharmはVENVと強力に統合されます。

.pthファイルの詳細については、たとえばこのSOの質問を参照してください。



0

通訳のダイアログボックスに移動すると、これを行うことができます。使用しているインタープリターをクリックすると、その下に2つのタブが表示されます。1つはパッケージと呼ばれ、もう1つはパスと呼ばれます。

[パス]をクリックして、VMパスを追加します。


リモートインタプリタをクリックしてクラスパスを追加すると、リモートディレクトリ(など/home/vagrant/mydir)を指定すると文句が表示されます。パスの前に何かを付ける必要がありますか?私はPythonプラグインでIntelliJを使用しており、それが役立つ場合はPyCharmを使用していないため、インターフェイスが少し異なります。
baalexander 2013年

1
SSHインタープリターにアクセスして、vagrantファイルからコンテンツをロードすることができます。そのオプションはそこにあります。
ゲームブレイニアック

0

pycharm 5ではこれに従ってください、 https:ください。

1)[設定]ダイアログボックスを開き、[プロジェクトインタープリター]ページをクリックします。
2)[プロジェクト]ペインで、目的のプロジェクトを選択します。
3)選択したプロジェクトについて、使用可能なPythonインタープリターと仮想環境のリストからSDKを選択します。


0

Intellij v2017.2では、次の場所に移動できます。

run > edit configurations > click ... next to the field 'Environment variables' > click the green + sign

名前= PYTHONPATH

value = your_python_path

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