私はPyCharmを使ってプロジェクトを進めています。プロジェクトが開かれ、インタプリタで構成されており、正常に実行できます。リモートインタプリタパスは正しくマッピングされています。これは正しい設定のようですが、PyCharmは私の有効なコードを "未解決の参照"エラーで強調しています。たとえビルトインのPython関数でもそうです。コードが実行されても、なぜこれらが検出されないようですか? PyCharmにこれらを正しく認識させる方法はありますか?
この問題の具体的な例はリモートインタプリタにありますが、問題はローカルインタプリタにもあります。
ファイル|キャッシュを無効にする...そしてPyCharmを再起動すると効果的です。
ドミトリーの返事は私にはうまくいかなかった。
私は、プロジェクトインタプリタに行き、「パス」タブを選択し、そしてそのサブメニューのリフレッシュボタンを押すことによって私の仕事を得ました。それは "python-skeletons"と呼ばれるもので自動生成されました。
編集:PyCharm 3.4.1を使ったスクリーンショット(かなり隠れています)
これには多くの解決策があり、他のものよりも便利なものもありますが、必ずしもうまくいくとは限りません。
「クイック」から「イライラする」まで、試すことができるすべてがここにあります。
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
フォルダを削除します~/.PyCharm50
%homepath%/.PyCharm50
キャッシュの無効化またはパスの更新が機能しない場合、この問題を解決するためにリモートインタプリタを削除して再度追加することにしました。
私は私のmulti-vm設定に新しいVMを追加するとvagrantを時々刻々使用します、転送されたポートは変更します、そしてこれはSSH用に間違ったポートを使おうとするとPyCharmを混乱させるようです。ポートを変更しても、壊れた参照が助けになるとは思われません。
私の場合、それはディレクトリ構造でした。私のプロジェクトはこんな感じです:
+---dir_A
+---dir_B
+app
|
\-run.py
だからdir_bを右クリックして "ディレクトリを"> "プロジェクトルート"としてマークする
以下の手順に従ってPyCharm 4.0.6(OSX 10.10.3)でテストしました。
問題が解決しました!
他の解決策がどれもうまくいかない場合は、(バックアップをとって)〜/ .PyCharm40フォルダを削除してからPyCharmを再び開いてください。これはあなたの好みすべてを殺します。
Macでは、〜/ Library/Caches/Pycharm40と〜/ Library/Preferences/PyCharm40を削除します。
そしてWindowsの場合:C:\ Users\$ USER.PyCharm40。
この質問をぶつけて申し訳ありませんが、私は作るために重要なアップデートがあります。
それ以外のバージョンを使用している場合は、プロジェクトのインタプリタをPython 2.7.6に戻すことをお勧めします。他の推奨事項で問題が解決しない場合は、これでPyCharm 4.04 ProfessionalのUbuntuインストールでうまくいきました。
Pycharmを閉じて、プロジェクトから.idea
フォルダを削除してから、Pycharmをもう一度起動してプロジェクトを再作成してください。キャッシュを無効にすることはできませんでしたがこれは私のために働いた。
提案された解決策のどれも私のために働かなかった後私はついにこれがうまくいった。私はDjangoのrestフレームワークプロジェクトで遊んでいて、自分でセットアップしたvirtualenvを使っていました。ルートフォルダをソースルートとしてマークすることでPycharmを修正することができましたが、その後Djangoのサーバーは解決の例外を投げます。ですから、一方が他方ではそうでないときには一方がうまくいくでしょう。
最終的に私はサブフォルダをpycharmのソースルートとしてマークしなければなりませんでした。だから私の構造はこんな感じでした
-playground
-env
-playground
その2番目のプレイグラウンドフォルダは、期待通りに動作するためにすべてのソースルートとしてマークしなければならなかったものです。それは私のシナリオには何の問題も示さなかったので、それは実行可能な解決策でした。
他の誰かがそれを使うことができる場合に備えて私が共有することを考えていました。
「未解決の参照」エラーだけを無視したい場合は、これをクラス/メソッド/関数の前に置くことで明示的にPyCharmに伝えることもできます。
# noinspection PyUnresolvedReferences
上記の解決策のどれも私のために働きませんでした!
プロジェクトに仮想環境を使用している場合は、仮想環境ディレクトリ内にあるpython.exe
ファイルをプロジェクト(Alt + Ctrl + Shift + S)
のインタプリタとして適用するようにしてください。これで問題は解決しました。
他のすべてのプロジェクトを閉じて、必要なプロジェクトをPycharmで単独で実行しました。私はpycharmとは別にvirtualenvを作成し、そこに必要なモジュールをすべてpipを使って追加しました。この仮想環境をプロジェクトのインタプリタに追加しました。これで私の問題は解決した。
私の場合、検査エラーはPythonコードの非常に特殊なケースが原因で現れます。 2つの派手な関数と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])
キャッシュをクリアしたり、パスのリストをリロードしてもうまくいきません。次のパッチ例のいずれかを使用してコードを変更するだけでうまくいきます。
答えはどれも私の問題を解決しませんでした。
私にとってそれは環境を切り替えて同じ環境に戻ることでした。 File->Settings->Project interpreter
Conda環境を使用しています。
私のさまざまなStackOVerflowの合併が答えて、なんて悪夢なのでしょうか。