PyLint无法识别cv2成员

时间:2018-05-30 19:30:24

标签: opencv visual-studio-code pylint

我在opencv项目上运行pylint,我在VS代码中收到许多关于成员不存在的pylint错误。

示例代码:

import cv2
cv2.imshow(....)

获得的错误:

enter image description here

但是,代码运行正常,没有任何错误。

版本:pylint 1.8.1,astroid 1.6.0

7 个答案:

答案 0 :(得分:31)

这是来自pylint。您可以使用以下命令在项目的根目录中生成pylint配置文件: (如果您在同一回购中的团队中或在不同的计算机上工作,我会发现这很有帮助)

pylint --generate-rcfile > .pylintrc

在生成的.pylintrc文件的开头,您将看到

# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-whitelist=

添加cv2,以便最终获得

# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-whitelist=cv2

保存文件。 棉绒错误应该会消失。

答案 1 :(得分:20)

  1. 在VScode上:CTRL + Shift + P
  2. 选择“首选项:打开设置(JSON)”
  3. 将此行添加到JSON文件中: “ python.linting.pylintArgs”:[“ --generate-members”]

完成,对我有用

注意:请确保选择“首选项:打开设置(JSON)”,而不是“首选项:打开默认设置(JSON)”

设置文件如下

{
"workbench.iconTheme": "vscode-icons",
"python.dataScience.sendSelectionToInteractiveWindow": true,
"kite.showWelcomeNotificationOnStartup": false,
"python.dataScience.askForKernelRestart": false,
"python.dataScience.jupyterServerURI": "local",
"python.pythonPath": "/usr/bin/python3",
"workbench.colorTheme": "Monokai",
"vsicons.dontShowNewVersionMessage": true,
"python.linting.pylintArgs": ["--generate-members"] }

答案 2 :(得分:13)

尝试像这样导入cv2:from cv2 import cv2

答案 3 :(得分:8)

是的,因为尚未安装扩展程序。 设置此:extension-pkg-whitelist = cv2,你很高兴。 但是,它可能无法检测到cv2

中实现的功能或模块

enter image description here

答案 4 :(得分:3)

我不必像这里的大多数答案一样更改 pylint Jason 文件中的任何内容我的解决方案是将导入语句更改为下面的形式

from cv2 import cv2

最终可以使用 cv2 成员!

答案 5 :(得分:2)

此处是MS V代码中settings.json文件的代码段

"python.linting.pylintArgs":["--extension-pkg-whitelist=cv2"]

答案 6 :(得分:0)

我在vscode的settings.json中使用了以下配置设置,它帮助我避免了pylint不必要的标记,并且还获得了cv2工作的智能感知, 它不起作用,请尝试从C:\ Anaconda3 \ envs \ demo1 \ Lib \ site-packages文件夹中卸载并删除cv2软件包,然后重新安装opencv-python软件包

X = [['Male', 1], ['Female', 3], ['Female', 2]]

preprocessor.fit_transform(X)
Out[6]: 
array([[-1.22474487,  0.        ,  1.        ],
       [ 1.22474487,  1.        ,  0.        ],
       [ 0.        ,  1.        ,  0.        ]])

preprocessor.named_transformers_['cat'].named_steps['onehot'].categories_
Out[7]: [array(['Female', 'Male'], dtype=object)]