#python #python-3.x #numpy #pylance
Вопрос:
Я добавлял подсказки типа в вызов функции, когда заметил, что Pylance печатает numpy.pi
как член numpy.testing
или относится к типу NoseTester.
Несмотря на то, что я попадаю type(np.pi) == float
в командную строку python, этот пример кода:
import numpy as np
def foo(val: float):
print(val)
foo(np.pi)
Выдает следующее сообщение об ошибке при foo(np.pi)
pi: Module("numpy.testing") | Type[NoseTester]
Argument of type "Module("numpy.testing") | Type[NoseTester]" cannot be assigned to parameter "val" of type "float" in function "foo"
Type "Module("numpy.testing") | Type[NoseTester]" cannot be assigned to type "float"
Type "Module("numpy.testing")" cannot be assigned to type "float"
"Type[type]" is incompatible with "Type[float]"PylancereportGeneralTypeIssues
Я получил то же самое сообщение об ошибке (для типов, отличных от float) для следующих вещей: numpy.pi
, numpy.e
, numpy.floor
, numpy.ceil
, numpy.sin
, numpy.cos
, numpy.tan
, numpy.sqrt
, numpy.exp
.
Однако эти поплавки/функции не приводят к проблеме: numpy.Inf
, numpy.Nan
, numpy.round
, numpy.real
, numpy.imag
, numpy.random.rand
.
Я убегаю:
- Numpy: 1.19.5
- Пиланс: 2021.5.3
Кто-нибудь знает, почему это происходит и/или как устранить проблему?
Правка 1: Похоже, это может быть скорее проблема с Пилансом, поэтому я создал microsoft/pylance-релиз#1340
Комментарии:
1. Действительно странно. Я не могу воспроизвести с помощью обычного python, но, конечно, это VS, так что кто знает
Ответ №1:
Я чувствую себя очень глупо-мне просто нужно было обновить Numpy до версии 1.20. Как было указано на GitHub Джейком Бейли, Numpy не включал информацию о вводе текста до 1.20.