2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

neovimのLSPによるpythonの補完で、opencvの補完が正常に効かない

Last updated at Posted at 2022-09-13

半年くらい前にvscodeからneovimに乗り換えたのですが、opencvの補完だけが正常に動いてくれないということがあって悩んでいました。numpyとかは普通に補完が効くのですが、例えば以下のようなコードを書いてみると、

import cv2

img = cv2.imread('sample.png')
cv2.imshow('img', img)
cv2.waitKey(0)

image.png

こんな風にneovim上で怒られてしまいます。ただし、ターミナル上では問題なくこのコードは動きます。

解決策

このissueを参考にしました。
以下のようにターミナル上でコマンドを打つと解決します。

$ pip install mypy
$ python3 -c 'import cv2; print(cv2)'
$ stubgen -m cv2 -o {cv2-package-folder}
$ cd {cv2-package-folder}
$ mv cv2.pyi __init__.pyi

1行目で、opencvが入っているディレクトリが出力されます。例えば次のようなものです。

<module 'cv2' from '/opt/homebrew/var/pyenv/versions/test/lib/python3.9/site-packages/cv2/__init__.py'>

ここのfrom以下の

/opt/homebrew/var/pyenv/versions/test/lib/python3.9/site-packages/cv2

が、{cv2-package-folder}を指しています。
あとは上記のコマンド通りに行えば大丈夫なはずです。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?