PyCharmは有効なコードに対して未解決の参照エラーを表示します


278

私はPyCharmを使用してプロジェクトに取り組んでいます。プロジェクトはインタープリターで開かれて構成され、正常に実行できます。リモートインタープリターパスは正しくマップされます。これは正しい構成のようですが、PyCharmは、組み込みのPython関数であっても、「未解決の参照」エラーで私の有効なコードを強調表示しています。コードが実行されているにもかかわらず、これらが検出されないように見えるのはなぜですか?PyCharmにこれらを正しく認識させる方法はありますか?


この問題の特定の例はリモートインタープリターにありますが、問題はローカルインタープリターにも発生します。


私は同じ問題を抱えて解決しました。ここでソリューション
Maks

回答:


444

ファイル| キャッシュを無効にする...そしてPyCharmを再起動すると役立ちます。


3
私の場合、これはPyCharm 4.0.xで作業する唯一の方法です。実際には、何かが台無しになって更新されない場合(リストに同じインタープリターが数回繰り返されている場合もあります)、ファイルを手動で削除する必要があります... .ideaフォルダーを一度削除する必要さえありました。
danius

10
これはとても重いです。PyCharm 4.5で古い「更新パス」オプションを取り戻す方法はありませんか?
Chris Withers、2015

6
そのようなIDEがそのような単純な操作を処理しないのは本当にうっとうしいことです。
Eduardo Pignatelli、2018

3
一時的に動作します。数分後、再び同じ警告が表示されます
Aseem

133

ドミトリーの反応は私にはうまくいきませんでした。

私は、プロジェクトインタープリターに移動し、[パス]タブを選択して、そのサブメニューの更新ボタンをクリックすることで作業を開始しました。「python-skeletons」と呼ばれるもので自動生成されます。

編集:PyCharm 3.4.1を使用したスクリーンショット(非常によく隠されています)

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


6
「Pythonインタープリター」はどこにありますか。「プロジェクト通訳」ですか?Linuxを使用していますが、[パス]タブも見つかりませんでした。
バスカヤ2014

1
OSX上のPyCharm 3.4では、それは小さなフォルダーツリーのように見えるアイコンで、「パス」とは表示されません。
Daniel Bushman、2014

12
(PyCharm 3.4.1で)まだ混乱している人のために:Settings > Project Settings > Project Interpreter > Project Interpreters (gear button > more) > --Select the interpreter-- > Interpreter Paths (Directory Tree button on the right) > Reload List of Paths (Blue refresh-like button)
raphaeltm 2014年

5
PyCharm 4にはそのような更新ボタンはありません。プラス記号とマイナス記号のみです。
dtheodor 2015年

3
@Sarah PyCharm 4.0.4では、[インタープリターパス]ウィンドウに[パスのリストを再読み込み]ボタン(下部の青い更新アイコン)がありません。また、リストにパスが表示されず、プラスボタンとマイナスボタンが無効になっています。
Henrik Heimbuerger、2015

70

これには多くの解決策があり、他のものより便利なものもあり、それらが常に機能するとは限りません。

「クイック」から「迷惑」まで、試してみることのできるすべての機能を次に示します。

  • 実行File-> Invalidate Caches / RestartそしてPyCharmを再起動します。
    • 念のため、以下の方法の後にこれを行うこともできます。
  • まず、実行しているインタープリターを確認します:Run-> Edit Configurations-> Configuration-> Python Interpreter
  • インタープリターのパスを更新します。
    • File -> Settings
    • Project: [name]-> Project Interpreter-> 'Project Interpreter':歯車アイコン->More...
    • [パスを表示]ボタンをクリックします(下)
    • [更新]ボタンをクリックします(下)。
  • インタープリターを削除して、もう一度追加します。
    • File -> Settings
    • Project: [name]-> Project Interpreter-> 'Project Interpreter':歯車アイコン->More...
    • [削除]ボタンをクリックします
    • 「追加」ボタンをクリックして、インターピーターを再度追加します
  • プロジェクトの設定を削除する
    • プロジェクトを削除します .ideaフォルダーを
    • PyCharmを閉じて再度開きます
    • プロジェクトを最初から開きます
  • PyCharmのユーザー設定を削除します(ただし、最初にバックアップします)。
    • ~/.PyCharm50 Mac
    • %homepath%/.PyCharm50 Windowsの場合
  • 別のインタープリターに切り替えてから、もう一度必要なインタープリターに戻します。
  • 新しい仮想環境を作成し、その環境のインタープリターに切り替えます。
  • 完全に別の通訳に切り替えます。元に戻さないでください。

私がPyCharmを使用している限り、この問題が発生していて、まだ問題を確実に解決できない。あなたがその周りのほとんどの作業をカバーした良いことは、問題を修正することになります。おかしなことに、私が時々この答えに戻って、私が試したのを忘れていた問題の回避策を見つけ出しました。
アレックス

3
私はこのリストをたどって、インタプリタの削除/再追加がうまくいきました。ありがとう!
マーク

16

私の場合、それはディレクトリ構造でした。私のプロジェクトは次のようになります:

+---dir_A
    +---dir_B
        +app
        |
        \-run.py

dir_bを右クリック>「ディレクトリを次のようにマーク」>「プロジェクトルート」


2
問題は、PyCharmがプロジェクトコードを認識しないことではありませんでした。標準のPython組み込みメソッドを認識しません。
florisla 2016年

MacOSのPyCharm 2019.3.3で私の問題を解決しました
samisnotinsane

11

キャッシュの無効化またはパスの更新が機能しない場合、この問題を解決するためにリモートインタープリターを削除して追加し直しました。

私はvagrantを時々使用していますが、新しいVMをmulti-vmセットアップに追加すると、転送されたポートが変更され、PyCharmがSSHに間違ったポートを使用しようとすると混乱するようです。ポートを変更しても、壊れた参照は役に立ちません。


10

他の解決策がどれもうまくいかない場合は、(バックアップ)〜/ .PyCharm40フォルダーを削除してから、PyCharmを再度開いてみてください。これにより、すべての設定も削除されます。

Macでは〜/ Library / Caches / Pycharm40と〜/ Library / Preferences / PyCharm40を削除します。

Windowsの場合:C:\ Users \ $ USER.PyCharm40。


10

次の手順に従って、PyCharm 4.0.6(OSX 10.10.3)でテストされています。

  1. PyCharmメニューをクリックします。
  2. Project Interpreterを選択します。
  3. 歯車アイコンを選択します。
  4. [その他]ボタンを選択します。
  5. あなたがいるプロジェクトインタープリターを選択してください。
  6. [ディレクトリツリー]ボタンを選択します。
  7. パスのリストを再読み込みを選択します。

問題が解決しました!


8

非常に簡単

ルートディレクトリをSOURCE ROOT(赤)としてマークし、アプリケーションをEXCLUDED ROOT(青)、

その後、未解決の参照が消えます。

  • ここに画像の説明を入力してくださいPyChram proを使用している場合、これは自動的に行われます。

5
私はpycharmプロを使用していますが、これは機能しませんでしたが、手動でフォルダに正しくマークを付けた後、機能しました
Jose

6

この質問にぶつかって申し訳ありませんが、重要な更新を行っています。

それ以外のバージョンを使用している場合は、プロジェクトインタープリターをPython 2.7.6に戻すこともできます。これは、他の推奨事項で問題が解決されなかったため、PyCharm 4.04プロフェッショナルのUbuntuインストールで機能しました。


1
ローカルのPython 2インタープリターに切り替えてから、リモートのPython 3インタープリターに戻すと、これも修正されました。
James Fletcher、

これはPyCharm 5プロフェッショナルでも動作します。この投稿の他の解決策はどれもうまくいきませんでした。に行ってSettings -> "Project Interpreters"、ギアをクリックしてから、をクリックしました"More..."。デフォルトのpythonインタープリター(/usr/bin/python2.7私の場合)を選択し、"Ok"とを押します"Apply"。次に戻って、使用したい実際のvirtualenvを選択しました。"Ok"そして"Apply"再び、それは修正されました。
Josh、

同様にFileNotFoundErrorPython-3のみです。File-Settings-Project-InterpreterとRun-Edit-Configurationsの両方に正しいインタープリターを設定した後、そのうちの1つでエラーが発生しなくなりました。
ボブスタイン

3

Pycharmを閉じ.idea、プロジェクトからフォルダを削除してから、Pycharmを再起動してプロジェクトを再作成してみてください。これは私にとってはうまくいきましたが、キャッシュの無効化はうまくいきませんでした。


2

提案された解決策がどれもうまくいかなかったので、ようやくこれがうまくいきました。私はジャンゴレストフレームワークプロジェクトで遊んでいて、セットアップしたvirtualenvを使用していました。ルートフォルダーをソースルートとしてマークすることでPycharmを修正できましたが、djangoのサーバーが解決例外をスローしました。したがって、一方が機能しない場合でも機能し、他方では機能しません。

最終的に、私はサブフォルダーをpycharmのソースルートとしてマークする必要がありました。だから私の構造はこのようなものでした

-playground
     -env
     -playground

その2番目のプレイグラウンドフォルダーは、すべてが期待どおりに機能するためにソースルートとしてマークする必要があったフォルダーです。それは私のシナリオでは何の問題も提示しなかったので、それは実行可能な解決策でした。

誰かがそれを使用できるように私が共有すると思いました。


2

Pythonバージョンの問題である可能性もあります。私はそれを機能させるために正しいものを選ばなければなりませんでした。 ここに画像の説明を入力してください


2

一部の「未解決の参照」エラーのみを無視したい場合は、クラス/メソッド/関数の前にこれを配置することで、PyCharmに明示的に通知することもできます。

# noinspection PyUnresolvedReferences

1

他のすべてのプロジェクトを閉じて、必要なプロジェクトをPycharmで分離して実行しました。pycharmから別のvirtualenvを作成し、pipを使用して必要なすべてのモジュールを追加しました。この仮想環境をプロジェクトのインタープリターに追加しました。これは私の問題を解決しました。


1

悪夢を見て、さまざまなStackOVerflow回答の私の融合が答えます:

  1. ローカルインタープリター/usr/bin/pythonX.Xに切り替えて適用
  2. 上記の回答のようなパスを表示
  3. スケルトンパスを見つけます。私は(/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
  4. virtインタープリターに切り替え、スケルトンパスが自動的に表示されない場合は手動で追加します。

1

上記の解決策のどれも私にとってうまくいきませんでした!
プロジェクトで仮想環境を使用している場合python.exeは、仮想環境ディレクトリ内のファイルをプロジェクトのインタープリターとして(Alt + Ctrl + Shift + S) 適用してください。これで問題が解決しました。


1

私の場合、Pythonコードの非常に特殊なケースが原因で、検査エラーが表示されます。2つのnumpy関数と2つのリストアクセスを含むmin関数を使用すると、コード検査でこの種のエラーが発生します。

次の例で 'd = 0'行を削除すると、期待どおりに未解決の参照エラーが発生しますが、読み取りを行っても、コードインスペクターでエラーが解消されるわけではありません。その後も問題なくコードを実行できます。

import numpy as np
def strange(S, T, U, V):
    d = 0
    print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])

キャッシュのクリアとパスのリロードリストが機能しません。次のパッチ例のいずれかを使用してコードを変更することのみが機能します。

  • 「min」パラメーターの別の順序:概略的にSUTVですが、STUVまたはTSUV
  • 関数の代わりにメソッドを使用:np.abs(S [d])の代わりにS [d] .abs()
  • 組み込みのabs()関数の使用
  • 選択したパラメーターに数値を追加:U [d] + 0。

1

答えはどれも私の問題を解決しませんでした。

私にとってそれは、環境を切り替え、同じ環境に戻ることでした。 File->Settings->Project interpreter

conda環境を使用しています。


1

多くの単純なアクションで私のために働きました:


File > Settings > Project > Project Interpreter 
> Select "No interpreter" in the "Project interpreter" list 
> Apply > Set your python interpreter again > Click Apply

利益-Pycharmはスケルトンを更新しており、すべて正常です。


0

vagrantエラーを使用している場合は、間違ったpythonインタープリターが原因である可能性があります。私vagrantたちが使用しているpyenvので、Python Interpreter pathパスをから/usr/bin/pythonに変更する必要がありました/home/vagrant/.pyenv/versions/vagrant/bin/python ここに画像の説明を入力してください


0

あるsrc/ファイルが同じディレクトリにある別のファイルをインポートするプロジェクトがあります。PyCharmに認識させるには、[ファイル]> [設定]> [プロジェクト]> [プロジェクト構造]に移動し、src ]に移動フォルダーをして[マーク:ソース]をクリックする必要がありました。

https://www.jetbrains.com/help/pycharm/configuring-folders-within-a-content-root.htmlから

ソースルートには、実際のソースファイルとリソースが含まれています。PyCharmはインポートルートを解決するための開始点としてソースルートを使用します


0

私の問題は、Flask-WTFPyCharmによって解決されないことです。再インストールしてからインストールするか、キャッシュを無効にして再起動しようとしました PyCharmが、それでも機能しません。

それから私はこの解決策を思いつきました、そしてそれは私にとって完璧に機能します。

  1. オープンプロジェクトインタプリタによってはCtrl + Alt + S(Windowsの場合)、[OK]をクリックします(+)をインストールし、新しいpackgageを。

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

  1. PyCharmによって解決されないパッケージを入力し、[パッケージのインストール ] クリックします。次に[ OK ]をクリックします。

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

これで、ライブラリが解決されたことがわかります。


-1

virtualenvを使用していますか?

その場合、目的のpython.exeの場所が変更されるたびにPyCharmに通知する必要があります(単に./activateではPyCharmには不十分です)。

Pycharmが正しいinterpetorとパッケージをポイントしていることを確認してください:ファイル->設定->プロジェクト->プロジェクトインタープリター。歯車をクリックし、virtualenvのScriptsフォルダーの下にあるpython.exeを選択します。

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

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