You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Pylint no-member and no-name-in-module warnings since version 4.6.0.66 #824
$ pylint test.py --extension-pkg-whitelist=cv2 --unsafe-load-any-extension=y
-------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 5.00/10, +5.00)
With opencv-python-4.6.0.66 and the latest 4.7.0.72.:
$ pylint test.py --extension-pkg-whitelist=cv2 --unsafe-load-any-extension=y
************* Module test
test.py:2:0: E0611: No name 'getStructuringElement' in module 'cv2' (no-name-in-module)
test.py:2:0: E0611: No name 'MORPH_ELLIPSE' in module 'cv2' (no-name-in-module)
----------------------------------------------------------------------
Your code has been rated at -40.00/10 (previous run: 10.00/10, -50.00)
Issue submission checklist
This is not a generic OpenCV usage question (looking for help for coding, other usage questions, homework etc.)
I have read the README of this repository and understand that this repository provides only an automated build toolchain for OpenCV Python packages (there is no actual OpenCV code here)
The issue is related to the build scripts in this repository, to the pre-built binaries or is a feature request (such as "please enable this additional dependency")
I'm using the latest version of opencv-python
Reacted by 747, Porvatov Vadim, Naoki Numaguchi, xqgex, Jan-Eric Nitschke, Marco Rovinelli, Oinatz Martinez, Oliver E-D and Nicky McCurdy
This issue is still present in opencv-python==4.8.1.78, linting with pylint==3.0.2 and using the example from above:
❯ pylint test_cv2.py --extension-pkg-whitelist=cv2 --unsafe-load-any-extension=y
************* Module test_cv2
test_cv2.py:2:0: E0401: Unable to import 'cv2' (import-error)
------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)
❯ pip freeze
astroid==3.0.1
dill==0.3.7
isort==5.12.0
mccabe==0.7.0
numpy==1.26.2
opencv-python==4.8.1.78
platformdirs==4.0.0
pylint==3.0.2
tomlkit==0.12.3
❯ python --version
Python 3.11.5
Looking at the PRs above, it looks like those are adding type stub files, however as far as I'm aware pylint will not use the type stub files, instead it prefers to be able to import the C extension and introspect it.
Could we perhaps re-open the ticket? Or I can submit another one if that's preferable.
I am still experiencing this problem. Adding '--extension-pkg-whitelist=cv2' in my vscode settings.json does not work for me, I have to use '--generated-members=cv2.*'.
However, this does not help on collaborative projects as other developers also need to add this to their settings.json, and the automatic linting tests need to have the '--generated-members' parameter for them to pass.
That sounds like a pylint issue, not an OpenCV one. Both mypy, pyright (and I'm sure more) can pickup on the stubs. Stubs should also always be prioritized over implementation when present.
Possibly related: pylint-dev/pylint#9574
Activity
asmorkalov commentedon Jun 23, 2023
Most probably fixed in:
robertschweizer commentedon Jul 27, 2023
Thanks for working on this @asmorkalov
I tried with opencv-python-headless 4.8.0.74 and pylint 2.17.5. The pylint issue is not fixed.
The new typing stubs work well though, mypy runs fine with the new opencv version.
As a workaround,
cv2can be added to pylint'signored-moduleslist. Mypy type checking has to be enough for cv2 calls then.jakeanq commentedon Dec 4, 2023
This issue is still present in
opencv-python==4.8.1.78, linting withpylint==3.0.2and using the example from above:Looking at the PRs above, it looks like those are adding type stub files, however as far as I'm aware
pylintwill not use the type stub files, instead it prefers to be able to import the C extension and introspect it.Could we perhaps re-open the ticket? Or I can submit another one if that's preferable.
MrTorstein commentedon Jan 4, 2024
I also have the same problem, and would love for this issue to be reopened. Or for any new issue opened to be linked.
OlliejED commentedon Jun 11, 2024
I am still experiencing this problem. Adding '--extension-pkg-whitelist=cv2' in my vscode settings.json does not work for me, I have to use '--generated-members=cv2.*'.
However, this does not help on collaborative projects as other developers also need to add this to their settings.json, and the automatic linting tests need to have the '--generated-members' parameter for them to pass.
Avasam commentedon Aug 1, 2024
That sounds like a pylint issue, not an OpenCV one. Both mypy, pyright (and I'm sure more) can pickup on the stubs. Stubs should also always be prioritized over implementation when present.
Possibly related: pylint-dev/pylint#9574
asmorkalov commentedon Sep 12, 2024
cc @avokin2