Почему PyCharm дает нерешенные справочные ошибки в отношении некоторых импортных операций Numpy?
Следующая строка в PyCharm помечена инспекцией "на лету" с нерешенными ссылочными ошибками для каждого импорта. (Они подчеркнуты красным.)
from numpy import tan, arcsin, arccos, arctan
Однако следующий импорт не вызывает ошибок/предупреждений:
from numpy import sin, cos, arctan2, sqrt, cross, pi
Код, в котором я использую эти импорт, отлично работает без каких-либо ошибок или предупреждений. Обычно я полагаюсь на красные ошибки PyCharm как предупреждение о том, что мой код сломан и не будет работать, но в этом случае PyCharm ошибается.
Почему некоторые из numpy-функций распознаются с помощью PyCharm-интроспекции, а другие нет?
Текущие версии:
- 64-разрядная версия Windows 7
- Python 2.7.5
- PyCharm 3.1.2
- Numpy 1.8
Спасибо!
Ответы
Ответ 1
Причина, по которой вы получаете это, - это статический анализ PyCharm. Теперь, что делает Python, это использование статических скелетов (некоторые из них предварительно сгенерированы и некоторые генерируются), чтобы дать вам анализ. Взгляните на предварительно сгенерированные скелеты здесь → https://github.com/JetBrains/python-skeletons
Это можно решить, включив следующее:
![enter image description here]()
Однако, если это не работает:
![enter image description here]()
который блокирует ошибку, он появится в виде комментария над строкой.
Ответ 2
Конфигурация Python указана (как минимум) в двух местах: Run | Edit Configurations | Python | Python Interpreter
Run | Edit Configurations | Python | Python Interpreter
Run | Edit Configurations | Python | Python Interpreter
и File | Settings | Project | Project Interpreter
File | Settings | Project | Project Interpreter
File | Settings | Project | Project Interpreter
. Моя ошибка была в том, что я не установил правильную установку Python в File | Settings...
File | Settings...
Следовательно, он имел в виду конфигурацию Python, в которой не был установлен импорт (например, NumPy).
После того, как я установил эти два местоположения, чтобы они указывали на одну и ту же правильную установку Python, я сделал File | Invalidate Caches/Restart
File | Invalidate Caches/Restart
, тогда все было хорошо.
Третье место, чтобы проверить это File | Default Settings... | Project Interpreter
File | Default Settings... | Project Interpreter
File | Default Settings... | Project Interpreter
и убедитесь, что он соответствует другим настройкам.
Ответ 3
Ниже часто помогает решить ложноположительные нерешенные ссылки
File | Invalidate Caches
Ответ 4
Разработчик PyCharm опубликовал обходной путь для одной из возможных причин неудачи проверки:
https://youtrack.jetbrains.com/issue/PY-32029
Суть этого - проверка может не пройти, если у вас есть папка venv
каталоге проекта. Щелкните правой кнопкой мыши, отметьте каталог как исключенный.
Ответ 5
Вы можете отключить проверки для определенных библиотек (например, numpy). Я нашел это очень полезным, так как моя полоса прокрутки постоянно горела из-за этой проблемы. Перейдите в Настройки → Редактор → Инспекции → Python → Неразрешенные ссылки (внизу) и перейдите в раздел Игнорировать ссылки в правом нижнем углу окна.
Добавьте запись с "numpy. *" Без кавычек, и вы больше не увидите этих неразрешенных ссылок в numpy, освещающих вашу полосу прокрутки!
Ответ 6
Я смог решить проблему, просто используя virtualenv вместо системного интерпретатора. Ни один из других методов, которые я нашел где-либо, не работал для меня раньше.
Я использую Windows 7, PyCharm Community Edition 2018.2.4, Python 3.6.7, Numpy 1.15.4
- Создайте новый проект с именем my_project и настройте его на использование системного интерпретатора.
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 выдает предупреждение о неразрешенной ссылке и Ctrl->Click
на tan
не приводит к пустому коду, как должно.
-
Вручную создайте виртуальную среду
$cd dir/to/my_project
$virtualenv venv
$venv\Scripts\activate
(venv) $pip install numpy
(venv) $deactivate
В Linux замените строку активации source venv/bin/activate
- Скажите PyCharm использовать виртуальную среду:
File → Settings → Project: my_project → Project Interpreter → Select your project → Select Python 3.6 (my_project)
котором должен быть файл python.exe в папке вашего проекта где-то в папке venv
, - Теперь
File → Invalide Caches/Restart... → Invalidate and restart
- Дождитесь завершения индексации и проверьте, можете ли вы
Ctrl->Click
на tan
в вашем script1.py
Таким образом, я смог исправить ту же проблему для других пакетов, таких как torch и opencv (просто создавая виртуальную среду со всеми необходимыми мне пакетами). Нет больше неразрешенных ссылок до сих пор.
Не знаю, почему это будет работать так, но не будет работать с системным интерпретатором.