非常轻微但值得一提。
Pylint 没有发现torch
具有成员函数from_numpy
。 这是因为就 Pylint 而言, torch.from_numpy
实际上是torch._C.from_numpy
。
根据这个stackoverflow线程numpy
也遇到了这个问题。
作为参考,您可以通过使用以下注释包装“有问题的”调用来让 Pylint 忽略这些。
# pylint: disable=E1101
tensor = torch.from_numpy(np_array)
# pylint: enable=E1101
解决方法似乎很丑陋。 有没有办法告诉 pylint 过滤某些错误?
我可以补充一点, pylint (1.6.5) 也没有将cat
、 topk
和masked_select
作为成员函数。
我不认为我们会解决这个问题。 (我也不知道有没有办法)。
您可以通过编辑.pylintrc
的相应行来抑制这些模块的所有此类消息,如下所示:
[MASTER]
extension-pkg-whitelist=numpy,torch
[TYPECHECK]
ignored-modules=numpy,torch
ignored-classes=numpy,torch
mypy 似乎能够接收这些成员。
您现在可以执行以下操作,而不是忽略:
[TYPECHECK]
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=numpy.*,torch.*
生成的成员=numpy。 ,火炬。
对于那些使用 vscode 的人,添加到用户设置
“python.linting.pylintArgs”:[
“--仅错误”,
“--generated-members=numpy.* ,torch.* ,cv2.* , cv.*”
]
仅错误与问题无关,但如果您愿意,可用于抑制 pep 8/格式化“错误”
允许检查模块会很好,也可以自动完成。 也许可以将from torch._C import *
更改为from torch._C import from_numpy, ...
?
也许可以将
from torch._C import *
更改为from torch._C import from_numpy, ...
?
这看起来很简单。 我们确定这是要走的路吗?
我认为我们需要类型提示(这很难说服人们使用)。
我们是否应该打开另一个问题来讨论@moi90的解决方案?
生成的成员=numpy._,torch._
对于那些使用 vscode 的人,添加到用户设置
“python.linting.pylintArgs”:[
“--仅错误”,
“--generated-members=numpy.* ,torch.* ,cv2.* , cv.*”
]仅错误与问题无关,但如果您愿意,可用于抑制 pep 8/格式化“错误”
你救了我的一部分生命! 哈哈哈哈
在 VS 代码上:
在这种情况下,添加"python.linting.enabled": false
也有效。
一起禁用 linting(如@miranthajayatilake建议的那样)不是一个好的解决方案。 似乎pylint
与 pytorch 有问题,但对我来说flake8
效果很好。
在 VS Code 中,可以通过Ctrl + Shift + P
-> Select linter
-> flake8
选择flake8
$#$。
我不认为我们会解决这个问题。 (我也不知道有没有办法)。
以“我不知道如何因此不去”来结束问题是非常顽皮的。
生成的成员=numpy._,torch._
对于那些使用 vscode 的人,添加到用户设置
“python.linting.pylintArgs”:[
“--仅错误”,
“--generated-members=numpy.* ,torch.* ,cv2.* , cv.*”
]仅错误与问题无关,但如果您愿意,可用于抑制 pep 8/格式化“错误”
如果您使用的是 Coc,则可以在 coc-settings.json 中使用相同的规则。
最有用的评论
对于那些使用 vscode 的人,添加到用户设置
“python.linting.pylintArgs”:[
“--仅错误”,
“--generated-members=numpy.* ,torch.* ,cv2.* , cv.*”
]
仅错误与问题无关,但如果您愿意,可用于抑制 pep 8/格式化“错误”