前提・実現したいこと
Python上でOpenCVを使用したプログラムを作成しようとしていますが、cv2のimportができずに困っています。
使用している環境は次の通りです。
OS:Windows7 64bit
Python:2.7.14(Anacondaを使ってインストール)
OpenCV:3.2.0(Anacondaインストール後にCMakeで自前ビルド)
Spyder:3.2.6
その他:Visual Studio Professional 2015インストール済み
発生している問題・エラーメッセージ
runfile('C:/Users/USER/.spyder/temp.py', wdir='C:/Users/USER/.spyder') Traceback (most recent call last): File "<ipython-input-9-286fcfa931c2>", line 1, in <module> runfile('C:/Users/USER/.spyder/temp.py', wdir='C:/Users/USER/.spyder') File "C:\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile execfile(filename, namespace) File "C:\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 87, in execfile exec(compile(scripttext, filename, 'exec'), glob, loc) File "C:/Users/USER/.spyder/temp.py", line 8, in <module> import cv2 ImportError: DLL load failed: 指定されたプロシージャが見つかりません。
気になっているのは、この手の質問でよく見かける「指定された"モジュール"がみつかりません」ではなく、「指定された"プロシージャ"がみつかりません」となっている点です。
該当のソースコード
python
1import cv2 2print cv2.__version__
最小構成コードのつもりで書いています。
Spyderのエディタ画面で上記コードを記載後、ファイルを実行していますが、前述のエラーが吐き出されます。
試したこと
- Python(Anaconda)パッケージ、OpenCVのインストール状態の確認
Install OpenCV-Python in Windows
https://docs.opencv.org/3.2.0/d5/de5/tutorial_py_setup_in_windows.html
上記ページを参考にして、コマンドプロンプトにて下記コマンド実行により必要なパッケージ(NumpyとMatplotlib)を確認しました。
# packages in environment at C:\Anaconda2: # # Name Version Build Channel _ipyw_jlab_nb_ext_conf 0.1.0 py27h9111531_0 alabaster 0.7.10 py27h2cab13d_0 anaconda 5.1.0 py27_2 anaconda-client 1.6.9 py27_0 anaconda-navigator 1.7.0 py27_0 anaconda-project 0.8.2 py27he89e3ca_0 (中略) markupsafe 1.0 py27h9d4480d_1 matplotlib 2.1.2 py27ha51faf0_0 mccabe 0.6.1 py27hde0bf6e_1 menuinst 1.4.11 py27h0c8e037_0 mistune 0.8.3 py27_0 mkl 2018.0.1 h2108138_4 mkl-service 1.1.2 py27h3c6b6b0_4 mpmath 1.0.0 py27h0d59bc2_2 msgpack-python 0.5.1 py27hdc96acc_0 multipledispatch 0.4.9 py27h8ebb51e_0 navigator-updater 0.1.0 py27h5e42984_0 nbconvert 5.3.1 py27h7a573cf_0 nbformat 4.4.0 py27hf49b375_0 networkx 2.1 py27_0 nltk 3.2.5 py27h88af825_0 nose 1.3.7 py27h84c72c6_2 notebook 5.4.0 py27_0 numba 0.36.2 np114py27h719e94c_0 numexpr 2.6.4 py27h20dc147_0 numpy 1.14.0 py27hfef472a_1 numpydoc 0.7.0 py27hf7b062b_0 odo 0.5.1 py27h64810b2_0 olefile 0.45.1 py27_0 openpyxl 2.4.10 py27_0 openssl 1.0.2n hc64555f_0 packaging 16.8 py27hae1a450_1 pandas 0.22.0 py27hc56fc5f_0 pandoc 1.19.2.1 hb2460c7_1 pandocfilters 1.4.2 py27h76461d3_1 parso 0.1.1 py27hd69ea77_0 partd 0.3.8 py27h1e0692f_0 path.py 10.5 py27he482d56_0 pathlib2 2.3.0 py27h0ae272f_0 patsy 0.5.0 py27_0 pep8 1.7.1 py27_0 pickleshare 0.7.4 py27hb5f6335_0 pillow 5.0.0 py27h901f87c_0 pip 9.0.1 py27hdaa76b4_4 pkginfo 1.4.1 py27h6ce81e3_1 pluggy 0.6.0 py27h89dc50b_0 ply 3.10 py27h5fb8a85_0 prompt_toolkit 1.0.15 py27h3a8ec6a_0 psutil 5.4.3 py27h0c8e037_0 py 1.5.2 py27ha24bda0_0 pycodestyle 2.3.1 py27h24cd5d9_0 pycosat 0.6.3 py27hcd410c5_0 pycparser 2.18 py27hb43d16c_1 pycrypto 2.6.1 py27h0c8e037_7 pycurl 7.43.0.1 py27hc64555f_0 pyflakes 1.6.0 py27h34e7826_0 pygments 2.2.0 py27ha50f84f_0 pylint 1.8.2 py27_0 pyodbc 4.0.22 py27hc56fc5f_0 pyopenssl 17.5.0 py27h59156d7_0 pyparsing 2.2.0 py27hc7d9fa6_1 pyqt 5.6.0 py27h224ed30_5 pysocks 1.6.7 py27h59bdd1e_1 pytables 3.4.2 py27h583b7c0_2 pytest 3.3.2 py27_0 python 2.7.14 h8c3f1cb_23 python-dateutil 2.6.1 py27hbdcc174_1 pytz 2017.3 py27hca431c1_0 pywavelets 0.5.2 py27h0dc3f48_0 pywin32 222 py27h0c8e037_0 pywinpty 0.5 py27hc56fc5f_1 pyyaml 3.12 py27ha287073_1 pyzmq 16.0.3 py27he883654_0 (中略) xlrd 1.1.0 py27h2b87a7f_1 xlsxwriter 1.0.2 py27h5ed79b1_0 xlwings 0.11.5 py27_0 xlwt 1.3.0 py27h2271735_0 yaml 0.1.7 h3e6d941_2 zict 0.1.3 py27h0171463_0 zlib 1.2.11 hbc2faf4_2
また、同ページによると あとはcv2.pydをsite-packageフォルダへコピーすればOK、とのことなので確認すると、既にありました。
(タイムスタンプを見る限り、OpenCVビルド時に自動で置かれたものと思っています。)
ここで気にしているのは、インストール方法を検索するとよく見かける下記のコマンドによるパッケージのインストールをしていない点です。
pip install opencv-python
コマンドを実行していないのは、Spyderの初回起動時に「pipをつかったインストールはせずにcondaが更新されるのを待ってからcondadeインストールしてくれ」という旨のTipsがポップアップしたのを見たためです。
(じっくり読まずに進んでしまったので、間違った認識をしているかもしれません。)
- cv2.pydの依存関係の確認
「指定されたプロシージャが見つかりません。」の解決方法の特定に「Dependency Walker」が有用との情報を見つけたので、本ツールでcv2.pydを読み込みました。
見つけられない下記の依存DLLがあるとのことで、それぞれ確認するとDCOMP.DLL以外は見つかりました。(.libならある・・・)
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL
ためしにDLLがあるパスを環境変数に追加してみましたが、結果は変わらず。。。(DCOMP.DLLが原因・・・?)
また、これらDLLはVisual C++ 再頒布可能パッケージに含まれているらしく、確認しましたが既にインストールされていました。
(Visual Studioインストール済みなので当然・・・? 2005, 2008, 2010, 2012, 2013, 2015がありました。)
Win 7, 64 bit, dll problems
https://stackoverflow.com/questions/17023419/win-7-64-bit-dll-problems
また、上記ページを見ても結局のところ解決方法がピンと来ず・・・。
以上、誤った認識があるのかもしれませんが、なかなかスタート地点に立てず困っております。。。
アドバイスいただけますと幸いです。
また、不足している情報等がありましたらご指摘ください。追記いたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。