我尝试使用SciPy的expit(x)。但我收到此错误消息:
模块'scipy.special'没有'expit'成员
这是我的代码:
import numpy
import scipy.special
[...]
def Activation(self, ActivationInput):
self.ActivationOutput = scipy.special.expit(ActivationInput)
return self.ActivationOutput
尝试在函数scipy
中使用 Activation
在VScode中用红色下划线标记
通过Error importing scipy.special.expit的解决方案不令人满意,并且不起作用。
我使用Python 3.7,NumPy 1.14.5和SciPy 1.1.0。
其他功能可以使用,但是scipy.special
中的所有Ufunc都会收到此错误消息。
答案 0 :(得分:0)
这似乎是像this one这样的Pylint问题。您是否尝试过执行代码?
作为解决方法,您可以尝试禁用no-member / E1101规则:
#pylint: disable=no-member
self.ActivationOutput = scipy.special.expit(ActivationInput)
答案 1 :(得分:0)
scipy.special
中的所有ufunc都是用C编写的,因此pylint无法找到正确的定义。您可以通过在pylint中添加选项--ignored-modules=scipy.special
来告诉pylint忽略该模块。
可以通过选项GUI或直接向settings.JSON文件添加--ignored-modules=scipy.special
,但可以关闭VSCode与pylint一起使用的默认选项。
要解决此问题,可以将原始的默认选项以及--ignored-modules
标志添加到settings.json文件中。
[CTRL]+[Shift]+p
以打开命令搜索open settings (JSON)
,这将打开您的设置文件。settings.JSON
中添加键/值对,以便您的文件具有以下内容{
// any other options for VSCode
"python.linting.pylintArgs": [
"--disable=all",
"--enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned",
"--enable=unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode",
"--ignored-modules=scipy.special"
],
}
前三行是VSCode用于pylint的默认选项。第四行告诉pylint忽略scipy.special
模块,这将关闭错误。