How to Enable Method Autocompletion for OpenCV
source link: https://jdhao.github.io/2022/11/16/auto_completion_opencv/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
How to Enable Method Autocompletion for OpenCV
Introduction
In Python, some packages are written mainly or partially in C++, and the Python interfaces are just wrappers around the binary C++ module. Among these packages, there is OpenCV.
When I use python-lsp-server or pyright with Neovim1, I can not get method completion for the OpenCV package. This is because the OpenCV projects is developed using C++ and does not have stub files2 shipped yet.
Using stub file from project python-type-stubs
Fortunately, the project python-type-stubs provides stub files for several projects including OpenCV. To use the stub file, first find where OpenCV is installed on your system:
python -c 'import os, cv2; print(os.path.dirname(cv2.__file__))'
Then download the stub file and put it in the same directory as OpenCV.
curl -sSL https://raw.githubusercontent.com/microsoft/python-type-stubs/main/cv2/__init__.pyi \
-o path/to/opencv/directory/__init__.pyi
Then restart nvim, the auto-completion for OpenCV should work as expected.
Using stubgen
We can also use stubgen
to generate the stub files, like this:
# stubgen is installed via mypy package
pip install -U mypy
stubgen -m cv2
The stub file will be saved under the out/
directory.
However, the stub file generated by stubgen lacks doc and is not as good as stub file provided by project python-type-stubs.
For more info on using stubgen, visit its page.
References
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK