将OpenCV与Visual Studio Code一起使用时不会显示Cv2模块intellisense


总览

使用VScode导入cv2时,存在与cv2模块相关的智能感知无法正常工作的问题。
总之,

通过指定--extension-pkg-whitelist=cv2作为pylint的参数来解决。

操作环境

操作系统:Ubuntu16.04
python:3.5.2
opencv:4.1.0

问题

当我使用pip安装opencv并尝试使用VScode编写它时,显示以下错误。
Module 'cv2' has no なんとか member.
用pip重新安装opencv模块没有帮助。
当我从终端运行创建的python文件时,它工作正常,并且出现了一个问题,即仅显示智能感知。

原因

此问题是由于未在pylint参数的extension-pkg-whitelist中指定cv2模块引起的。

对策

如果首先不包含pylint,请使用pip进行安装。

1
username@PC:~$ pip install pylint

输出pylint配置文件

1
username@PC:~$ pylint --generate-rcfile > pylintrc

然后打开VScode并打开[ファイル]→[基本設定]→[設定]
将打开"设置"选项卡,因此在设置搜索中搜索Python.linting.pylintArgs
args.jpg
打开settings.json并编写如下。

settings.json

1
2
3
    {
    "python.linting.pylintArgs": ["--extension-pkg-whitelist=cv2"],
    }

如果这样设置并重新启动VScode,则intellisense将起作用。
vscode.jpg