PyCharmの次の行には、インポートごとに未解決の参照エラーがあるオンザフライ検査でフラグが立てられます。 (赤い下線が引かれています。)
from numpy import tan, arcsin, arccos, arctan
ただし、次のインポートではエラー/警告は発生しません。
from numpy import sin, cos, arctan2, sqrt, cross, pi
これらのインポートを使用するコードは、エラーや警告なしで正常に実行されます。私は通常、コードが壊れて実行されないという警告としてPyCharmの赤いエラーに依存していますが、この場合、PyCharmは間違っています。
Numpyの機能の一部がPyCharmのイントロスペクションによって認識され、他の機能が認識されないのはなぜですか?
現在のバージョン:
ありがとう!
これを取得している理由は、PyCharmの静的分析のためです。ここで、Pythonが行うことは、静的スケルトンを使用することです(一部は事前に生成され、一部は生成されます)。ここで事前に生成されたスケルトンをご覧ください-> https://github.com/JetBrains/python-skeletons
これを解決するには、次を有効にします。
ただし、それが機能しない場合:
エラーをブロックし、行の上にコメントとして表示されます。
Python設定は(少なくとも)2つの場所で指定されます:Run | Edit Configurations | Python | Python Interpreter
、およびFile | Settings | Project | Project Interpreter
。私の間違いは、適切なPythonインストールをFile | Settings ...
。したがって、Pythonインポートがインストールされていない構成(例:NumPy)を参照していました。
これらの2つの場所を同じ、正しいPythonインストールを指すように設定した後、File | Invalidate Caches / Restart
、その後は大丈夫でした。
確認する3番目の場所はFile | Default Settings... | Project Interpreter
そして、それが他の設定と一致することを確認します。
以下はしばしば解決するのに役立ちますfalse positive未解決の参照
File | Invalidate Caches
PyCharm開発者は、検査の失敗の1つの考えられる原因に対する回避策を投稿しました。
https://youtrack.jetbrains.com/issue/PY-32029
要点-プロジェクトディレクトリにvenv
フォルダーがある場合、検査に失敗することがあります。それを右クリックして、ディレクトリを除外としてマークします。
特定のライブラリ(numpyなど)に対する検査を無効にすることができます。この問題が原因でスクロールバーが常に点灯しているため、これは非常に役立ちました。 [設定]-> [エディタ]-> [検査]-> Python->未解決の参照(下部近く))に移動し、ウィンドウの右下にある[参照を無視]セクションに移動します。
引用符なしで「numpy。*」のエントリを追加すると、これらの未解決の参照がnumpyに表示されなくなり、スクロールバーが点灯しなくなります!
システムインタープリターの代わりにvirtualenvを使用するだけで問題を解決できました。私が見つけた他の方法はどれも以前はうまくいきませんでした。
Windows 7、PyCharm Community Edition 2018.2.4、Python 3.6.7、Numpy 1.15.4を使用しています
File -> Settings -> Project: my_project -> Project Interpreter -> Select your project -> Select the system interpreter
_を使用するように設定しますプロジェクト内に次のテストスクリプト_script1.py
_を作成します。
_import numpy as np
print(np.tan(8))
_
現在、このスクリプトの実行は正常に機能し、いくつかの数字を出力しますが、Pycharmは未解決の参照警告をスローし、tan
の_Ctrl->Click
_はnumpyコードに正しく移動しません。
仮想環境を手動で作成する
_$cd dir/to/my_project
$virtualenv venv
$venv\Scripts\activate
(venv) $pip install numpy
(venv) $deactivate
_
Linuxでは、アクティブ化行を_source venv/bin/activate
_に置き換えます
File -> Settings -> Project: my_project -> Project Interpreter -> Select your project -> Select Python 3.6 (my_project)
venv
フォルダー内のプロジェクトフォルダー内にpython.exeが必要です。File -> Invalide Caches / Restart ... -> Invalidate and restart
_Ctrl->Click
_のtan
で_script1.py
_できるかどうかを確認します。この方法で、トーチやopencv(必要なすべてのパッケージで仮想環境を作成するだけ)のような他のパッケージでも同じ問題を修正できました。これまで未解決の参照はありません。
なぜこのように機能するのかはわかりませんが、システムインタープリターでは機能しません。