@Ryo_AKIYAMA (Ryo Akiyama)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

vscodeでopencvを使いたい

解決したいこと

vscodeのターミナルでopencvを使ったファイルが上手く実行できない。

初心者です。
vscodeでpythonのコードを書いています。
画像を扱いたくてopencvをインストールしました。vscodeの実行ボタンでは問題なく動くのですが、ターミナルでは普段通りにファイルを指定して実行してもopencvがインポートができません。
conda listでは”opencv 4.5.4”と”opencv-python 4.5.5.64”が、pip listでは”opencv-python 4.5.5.64”がインストールされていることを確認できました。

【環境】
[OS]macOS Monterey ver.12.2.1
Anaconda navigateor 2.1.2をインストールし、仮想環境(Mypython37, python3.7.12)を作成。
vscode 1.66.2 (Universal)

ターミナルの表示:実行ボタンを押したとき

source /opt/anaconda3/bin/activate
conda activate Mypython37
/opt/anaconda3/envs/Mypython37/bin/python /Users/***/Desktop/Python/frame_triming.py

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
(base) ****:Python akiyamaryo$ source /opt/anaconda3/bin/activate
(base) ****:Python ***$ conda activate Mypython37
(Mypython37) ****:Python akiyamaryo$ /opt/anaconda3/envs/Mypython37/bin/python /Users/akiyamaryo/Desktop/Python/frame_triming.py

ターミナルの表示:手打ちでファイルを指定して実行したとき

(Mypython37) ****:Python ***$ python frame_triming.py
Traceback (most recent call last):
  File "frame_triming.py", line 1, in <module>
    import cv2
ImportError: No module named cv2

該当するソースコード

import cv2

img = cv2.imread("fox-1536x1022.jpeg")
trim_img =  img[100:1000, 100:1000]
cv2.imwrite("fox_trim.jpg", trim_img)
cv2.imshow('image',trim_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

わからないこと

実行ボタンで実行した際に出てくる/opt/anaconda3/envs/Mypython37/bin/pythonは必ず必要なのでしょうか?
numpyやmatplotlibを使うときはpython ****.pyで実行できたのですが。

0 likes

1Answer

私の環境はopencvを入れていないのでimportするとエラーになるのですが、インタラクティブモードでimport cv2とすると、同じようなエラーが出ます。
ModuleNotFoundError: No module named 'cv2'
そのため、ターミナルで実行されている環境にopencvが入っていないだけに見えますがいかがでしょうか。
以下、私が試した内容ですが、# で書いた内容がどうなるかは気になる点です。

$ pip list
Package            Version
------------------ -------
asgiref            3.5.0  
backports.zoneinfo 0.2.1  
Django             4.0.3  
Pillow             9.1.0  
pip                20.0.2 
pkg-resources      0.0.0  
setuptools         44.0.0 
sqlparse           0.4.2

$ which python
[# 意図したパスが出力されるでしょうか?]
(今回だと、/opt/anaconda3/envs/Mypython37/bin/python)

$ python -V
Python 3.8.10
[# 意図したバージョンが出力されるでしょうか?]

$ python
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
>>> quit()
1Like

Comments

  1. @Ryo_AKIYAMA

    Questioner

    $ which python
    で /usr/bin/python と返ってきます。
    settings.jsonで "python.pythonPath":"/opt/anaconda3/envs/Mypython37/bin/python"としています。
  2. @Ryo_AKIYAMA

    Questioner

    原因はわかりませんでしたが、Anaconda navigatorからではなく直接VScodeを起動したら問題なく動きました。とりあえずこの環境で勧めていこうと思います。
    丁寧なご回答本当にありがとうございました。

Your answer might help someone💌