web-dev-qa-db-ja.com

PyCharmがいくつかのNumpyインポートで未解決の参照エラーを出すのはなぜですか?

PyCharmの次の行には、インポートごとに未解決の参照エラーがあるオンザフライ検査でフラグが立てられます。 (赤い下線が引かれています。)

from numpy import tan, arcsin, arccos, arctan

ただし、次のインポートではエラー/警告は発生しません。

from numpy import sin, cos, arctan2, sqrt, cross, pi

これらのインポートを使用するコードは、エラーや警告なしで正常に実行されます。私は通常、コードが壊れて実行されないという警告としてPyCharmの赤いエラーに依存していますが、この場合、PyCharmは間違っています。

Numpyの機能の一部がPyCharmのイントロスペクションによって認識され、他の機能が認識されないのはなぜですか?

現在のバージョン:

  • Windows 7 64ビット
  • Python 2.7.5
  • PyCharm 3.1.2
  • ナンピー1.8

ありがとう!

26
flutefreak7

これを取得している理由は、PyCharmの静的分析のためです。ここで、Pythonが行うことは、静的スケルトンを使用することです(一部は事前に生成され、一部は生成されます)。ここで事前に生成されたスケルトンをご覧ください-> https://github.com/JetBrains/python-skeletons

これを解決するには、次を有効にします。

enter image description here

ただし、それが機能しない場合:

enter image description here

エラーをブロックし、行の上にコメントとして表示されます。

21
Games Brainiac

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そして、それが他の設定と一致することを確認します。

9
David Ching

以下はしばしば解決するのに役立ちますfalse positive未解決の参照

File | Invalidate Caches
7

PyCharm開発者は、検査の失敗の1つの考えられる原因に対する回避策を投稿しました。

https://youtrack.jetbrains.com/issue/PY-32029

要点-プロジェクトディレクトリにvenvフォルダーがある場合、検査に失敗することがあります。それを右クリックして、ディレクトリを除外としてマークします。

4
psarka

特定のライブラリ(numpyなど)に対する検査を無効にすることができます。この問題が原因でスクロールバーが常に点灯しているため、これは非常に役立ちました。 [設定]-> [エディタ]-> [検査]-> Python->未解決の参照(下部近く))に移動し、ウィンドウの右下にある[参照を無視]セクションに移動します。

引用符なしで「numpy。*」のエントリを追加すると、これらの未解決の参照がnumpyに表示されなくなり、スクロールバーが点灯しなくなります!

0
bingecoder

システムインタープリターの代わりにvirtualenvを使用するだけで問題を解決できました。私が見つけた他の方法はどれも以前はうまくいきませんでした。

Windows 7、PyCharm Community Edition 2018.2.4、Python 3.6.7、Numpy 1.15.4を使用しています

  1. My_projectという名前の新しいプロジェクトを作成し、システムインタープリター_File -> Settings -> Project: my_project -> Project Interpreter -> Select your project -> Select the system interpreter_を使用するように設定します
  2. プロジェクト内に次のテストスクリプト_script1.py_を作成します。

    _import numpy as np
    print(np.tan(8))
    _

    現在、このスクリプトの実行は正常に機能し、いくつかの数字を出力しますが、Pycharmは未解決の参照警告をスローし、tanの_Ctrl->Click_はnumpyコードに正しく移動しません。

  3. 仮想環境を手動で作成する

    _$cd dir/to/my_project
    $virtualenv venv
    $venv\Scripts\activate
    (venv) $pip install numpy
    (venv) $deactivate
    _

    Linuxでは、アクティブ化行を_source venv/bin/activate_に置き換えます

  4. PyCharmに仮想環境を使用するように指示します:File -> Settings -> Project: my_project -> Project Interpreter -> Select your project -> Select Python 3.6 (my_project)venvフォルダー内のプロジェクトフォルダー内にpython.exeが必要です。
  5. 今_File -> Invalide Caches / Restart ... -> Invalidate and restart_
  6. すべてのインデックス作成が完了するのを待ち、Ctrl->Click_のtanで_script1.py_できるかどうかを確認します。

この方法で、トーチやopencv(必要なすべてのパッケージで仮想環境を作成するだけ)のような他のパッケージでも同じ問題を修正できました。これまで未解決の参照はありません。

なぜこのように機能するのかはわかりませんが、システムインタープリターでは機能しません。

0
Simon