質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

8344閲覧

opencvを実行するとNo module named 'cv2'というエラーが出る

ozumin

総合スコア1

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/08/23 18:37

編集2022/08/23 23:09

前提

anaconda環境下でopencvを動作させようとするとimport段階で止まってしまいます

anaconda 4.14.0
python 3.9.12
opencv
・pip版(opencv-python) 4.6.0.66
・conda版 4.5.5

実現したいこと

opencvのimportを行う

発生している問題・エラーメッセージ

(testopencv) C:(path)>trial-cv.py
Traceback (most recent call last):
File "C:(path)\trial-cv.py", line 1, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'

該当のソースコード

trial

1import cv2 2exit()

試したこと

conda installとopencvの相性が悪いという内容の記事を発見したためpip install版も試してみましたが同様のエラーが発生しました
また、余計な不具合を招かないため、新しい環境(python3.9、opencvのみインストール)を制作し、conda install、pip installの間は環境ごと作り直しています

また、対話モードを利用し

python

1import cv2 2cv2.__version__

を実行すると、特にエラーを出すこともなく正しいバージョンを出力します
また、conda list上でも正常に表示されます

補足情報(FW/ツールのバージョンなど)

anacondaの操作が悪い可能性があるので一応記載しておきます
anaconda prompt上で操作を行っています

conda版

1conda create -n testopencv python=3.9 2conda activate testopencv 3conda install opencv 4conda list //opencvの存在を確認(opencv 4.5.5 py39h697d983_4) 5python //対話モードの起動 6import cv2 7cv2.__version__ // 4.5.5 と出力 8print(cv2) //module 'cv2' from 'C:\\(path)anaconda3\\envs\\testopencv\\lib\\site-packages\\cv2.cp39-win_amd64.pyd'

pip版

1conda create -n testopencv2 python=3.9 2conda activate testopencv2 3pip install opencv-python 4conda list //opencvの存在を確認(opencv-python 4.6.0.66 pypi_0 pypi) 5python //対話モードの起動 6import cv2 7cv2.__version__ // 4.6.0.66 と出力 8print(cv2) //module 'cv2' from 'C:\\(path)anaconda3\\envs\\testopencv\\lib\\site-packages\\cv2\\__init__.py'

よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/08/23 22:48

pythonの対話モードで下記を実行して、使ってるpythonの絶対パスを調べてください import sys print(sys.executable) trial-cv.pyの先頭に上記コードを追加して実行して、使ってるpythonの絶対パスを調べてください 両者は同じでしょうか?
jbpb0

2022/08/23 22:52

C:(path)>trial-cv.py ではなく C:(path)>python trial-cv.py と実行したら、どうなりますでしょうか?
ozumin

2022/08/23 23:28

ありがとうございます 確認してみたところ、対話の方ではAnaconda側を、コード側ではAppdate側(要は親のもの)を参照していました pathの再設定が面倒くさかったので一度anacondaを再ダウンロードしてみます
jbpb0

2022/08/24 04:11 編集

> コード側ではAppdate側(要は親のもの)を参照 おそらく、「*.py」ファイルにそちらのpythonがosの設定で関連付けされてるのだと思います 上記の通りなら、anacondaの仮想環境を有効にしても、たぶんos設定の関連付けは変わらないので、 C:(path)>trial-cv.py のようにして実行するのでは、質問者さんがやりたいこと(その時に有効な仮想環境のpythonが使われる)は実現できないような気がします 私の二つ目のコメントに書いたように C:(path)>python trial-cv.py のようにして実行したら、対話モードと同じpythonが使われると思いますよ
guest

回答2

0

ベストアンサー

対話モードを利用し...特にエラーを出すこともなく正しいバージョンを出力します

 

cmd

1(testopencv) C:(path)>trial-cv.py

ではなく

cmd

1(testopencv) C:(path)>python trial-cv.py

のようにして実行したら、対話モードと同じpythonが使われて、エラー出なくなると思います

投稿2022/08/27 15:03

jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozumin

2022/08/28 10:46

遅くなってしまい申し訳ありません 無事解決することができ、具体的な解決法を掲載いただきましたのでベストアンサーとさせていただきます ありがとうございました!
guest

0

あるあるなのが、複数のpythonが入っていて、片方でいくらインストールしてももう片方でダメ、ってのがあります。
それぞれ、どこにあるpythonが実行されてるのか確認してみよう

投稿2022/08/23 22:10

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozumin

2022/08/23 22:37

回答ありがとうございます 2店質問です 1.Anacondaなどで1つのみのバージョンを指定し構築した仮想環境上での実行でもこのような問題が発生するのですか? 2.発生する場合、どのようにして確認すればよいのでしょうか?
y_waiwai

2022/08/23 22:53

1.anacondaなどの実行環境であれば、ほとんど決め打ちで実行されるため、実行コマンド違いは怒らないと思われます。 が、 > C:(path)>trial-cv.py これはそうではないですよね
ozumin

2022/08/23 23:06

申し訳ないです、一部ミスが有ったようです 実行したコマンドの一部が入っていたようで正しくはこちらです (testopencv) C:\(path)>trial-cv.py Traceback (most recent call last): File "C:\(path)\trial-cv.py", line 1, in <module> import cv2 ModuleNotFoundError: No module named 'cv2' 投稿の方も修正しておきます また、とりあえず親の方のPythonをアンインストールして実行してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問