我有一個非常像ImportError: DLL load failed: %1 is not a valid Win32 application的情況,但答案沒有爲我工作。ImportError:DLL加載失敗:%1不是有效的Win32應用程序。但DLL的有
我的Python代碼說:
import cv2
但該行拋出這個問題的標題所示的錯誤。
我在這臺64位機器上安裝了C:\lib\opencv
的OpenCV。我正在使用64位Python。
我的PYTHONPATH變量:PYTHONPATH=C:\lib\opencv\build\python\2.7
。該文件夾包含cv2.pyd
,就是這樣。
我的PATH變量:Path=%OPENCV_DIR%\bin;...
該文件夾包含39個DLL文件,例如opencv_core246d.dll
。
OPENCV_DIR具有此值:OPENCV_DIR=C:\lib\opencv\build\x64\vc11
。
解決方案ImportError: DLL load failed: %1 is not a valid Win32 application表示將「新的opencv二進制文件路徑(C:\opencv\build\bin\Release
)添加到Windows PATH環境變量」。但是如上所示,我的PATH中已經有OpenCV二進制文件夾(C:\lib\opencv\build\x64\vc11\bin
)。而我的OpenCV安裝沒有任何發佈文件夾(build/java下的空白文件除外)。
任何關於發生了什麼問題的想法?我可以告訴Python詳細追蹤加載過程嗎?究竟是什麼DLL尋找?
謝謝, 拉斯
編輯:
我只注意到的是,根據http://www.dependencywalker.com/,在C:\lib\opencv\build\python\2.7
的cv2.pyd
是32位,而我運行的機器和Python的是64位。這可能是問題嗎?如果是這樣,我可以在哪裏找到64位版本的cv2.pyd?
點擊[瀏覽](HTTP:// WWW .lfd.uci.edu /〜gohlke/pythonlibs /#opencv)並找到64位opencv –
@KillConsole:謝謝,我會試一試。由於我下載的安裝包具有x86和x64子文件夾,因此我認爲它包含了64位的所有內容。顯然不是。萬歲,修好了!現在我們正在處理「ImportError:numpy.core.multiarray無法導入」,所以我會嘗試用於64位numpy的同一站點。如果你把你的評論寫成答案,我會贊成並接受它。 – LarsH
你使用了哪個Python版本? (而不是處理器位版本) – 2015-02-03 12:49:44