PyLint not recognizing cv2 members

2020-01-29 05:55发布

I am running pylint on an opencv project and I am getting many pylint errors in VS code about members not being present.

Example code:

import cv2
cv2.imshow(....)

Errors obtained:

enter image description here

However , the code runs correctly without any errors.

Versions : pylint 1.8.1 , astroid 1.6.0

5条回答
等我变得足够好
2楼-- · 2020-01-29 06:02

I used below config settings in settings.json of vscode and it helped me avoid the unessential flags by pylint, and also got intellisense for cv2 working, it it doesn't work try uninstalling and deleting cv2 packages from C:\Anaconda3\envs\demo1\Lib\site-packages folder, and reinstalling opencv-python package

{
"python.linting.pylintEnabled": true,
  "python.linting.enabled": true,
  "python.linting.pylintArgs": [
    "--extension-pkg-whitelist=cv2"
  ]
}
查看更多
甜甜的少女心
3楼-- · 2020-01-29 06:04
  1. On VScode: CTRL + Shift + P
  2. Choose "Preferences: Open Settings (JSON)"
  3. Add this line into JSON file: "python.linting.pylintArgs": ["--generate-members"]

Done, it works for me

Note: Make sure you choose "Preferences: Open Settings (JSON)", not "Preferences: Open Default Settings (JSON)"

Setting File would look like

{
"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"] }
查看更多
爷、活的狠高调
4楼-- · 2020-01-29 06:18

Yes it is because the extension has not been installed. Set this: extension-pkg-whitelist=cv2 and you're good to go. However it may not detect the functions or modules implemented in cv2

enter image description here

查看更多
beautiful°
5楼-- · 2020-01-29 06:18

Here the code snippet for the settings.json file in MS V Code

"python.linting.pylintArgs":["--extension-pkg-whitelist=cv2"]
查看更多
在下西门庆
6楼-- · 2020-01-29 06:25

This is from pylint. You can generate a pylint config file in the root of your project with this command: (I find this to be helpful if you work in a team or on different computers from the same repo)

pylint --generate-rcfile > .pylintrc

At the beginning of the generated .pylintrc file you will see

# 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=

Add cv2 so you end up with

# 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

Save the file. The lint errors should disappear.

查看更多
登录 后发表回答