web-dev-qa-db-ja.com

PyCharmはvirtualenvでパッケージを見つけることができません

最新のPyCharm CEを使用しており、virtualenvで使用しています。 virtualenvでインタープリターとしてインタープリターを定義しました。 PyCharmのProject Interpreterウィンドウには、インストールしたすべてのパッケージが一覧表示されます。 pip freeze > requirements.txtを実行し、パッケージを手動で実行して、これを確認しました。

私の問題は、PyCharmがFlask-Loginのような特定のインクルードをエディターウィンドウに見つけられないことです。

from flask.ext.login import current_user, login_user, logout_user, login_requiredでは、インクルードcurrent_user, login_user, logout_user, login_requiredはすべて未解決の参照としてマークされます。

何か不足していますか?

30
ruipacheco

この問題は、PyCharmが仮想環境の障害のある「インタープリターパス」を選択することにある可能性があります。ここに行く:

PyCharm (menu) -> Preferences (Menu option)
               -> Project: <name> (Dropdown) 
               -> Project Interpreter (Menu option)
               -> 'Settings' button (Looks like a gear)
               -> More (Menu option)
               -> Select your virtualenv interpreter
               -> Click 'Show paths for interpreter' button (on bottom of list window)

これで(間違いなく曲がりくねった場所)にいるので、このインタープリターによって使用されているパスが表示されるはずです。私の理論が正しい場合、これらはグローバルなシステムの場所を指しています。仮想環境のパスを追加するには、+ボタンをクリックして、仮想環境内に存在する対応するパスを追加する必要があります。これが完了したら、グローバルシステムパスを選択し、-をクリックして削除することをお勧めします。 [適用]をクリックし、File -> Invalidate caches / Restartに移動してPyCharmをリロードします。

これにより、インタプリタがvirtualenvにインストールしたライブラリの正しい場所を指すようになり、インポートエラーが発生することはなくなります。この修正を行っても、Project Interpreterの下にライブラリは表示されませんが、ロードされるはずです。

54
Nathaniel Ford

PyCharmの最新バージョン(私の場合は2016.1.4):

  • 設定
  • プロジェクト:プロジェクトの名前
    • プロジェクト通訳
    • 右側には、通訳を選択できるドロップダウンがあります。 venvオプションがあるはずです。

より良い説明については、以下の画像を参照してください(彼らが言ったように、1枚の画像は数千ワードに相当)

Setting python interpreter

7
dieend

Nathaniel Fordとdieendのcorrect提案の後でも、私は同じ問題に直面していました(インクルードはまだ見つかりません)。正しいpythonインタープリターが選択されていることを確認して、実行/デバッグ構成を確認してください。

enter image description here

2
Eyedia Tech

最近この問題に苦労したので、このトピックに関する私の2セント。ナサニエル・フォードの答えは、この部分を除いて良いものです:

               -> Select your virtualenv interpreter

私には不明瞭でした。

私は何度か試しました

~/.virtualenvs/python-audition-2.9/bin/python

一方、それは

~/.virtualenvs/python-audition-2.9/local/bin/python

後者のパスの.../local/...に注意してください。私の場合、それは本当に重要でした。そして、File -> Invalidate caches / Restartを忘れずにPyCharmをリロードしてください。

0
ggrelet

私にとって、最も簡単な解決策は、ルートディレクトリでプロジェクトを開くことでした(私のプロジェクトにはサーバーディレクトリとクライアントディレクトリがあるため、ルートディレクトリには両方が含まれています)。ルートディレクトリでプロジェクトを開くと、慣例により使用されるため、pycharm設定を台無しにせずに依存関係を見つけることができます。

0
Ben Yitzhaki

Preferences -> Project -> Project Interpreterを開いて、そこにモジュールが表示されていますか?

はいの場合、プロジェクトのどこかにflask.ext.loginと同じ名前の別のファイルがある可能性があります。これにより、pycharmは実際のモジュールを見つけられなくなります。

いいえの場合は、インタープリターの横の...をクリックしてmore...を選択し、インタープリターを選択し、下部(フィルターの横)でShow paths for the selected interpreterをクリックして、パスを追加できますそこにあなたのモジュールの。

0
J.Ku

既存の仮想環境をプロジェクトに割り当てることができませんでしたが、

ファイル->設定->プロジェクトインタープリター->すべて表示->「+」をクリック

新しい仮想環境を作成したり、既存の仮想環境を選択したりするには、既存の仮想環境を割り当てて使用することができます。

0
jagadish

別のプロジェクトを開くたびに、以前に作業していたプロジェクトのvenvがまだ残っていることに気付きました。

私がやることは:

ctrl-alt-s(設定に入る)、次にプロジェクトインタープリター/設定(歯車アイコン)、すべて表示してから、現在のプロジェクトではないすべてのvenv環境を削除します(-記号を使用)。再起動すれば、準備完了です。

0
Joseph Pleuss