У меня ситуация очень похожа на ситуацию в ImportError: загрузка DLL не удалась:% 1 не является допустимым приложением Win32, но ответ там не работает для меня.
Мой код Python говорит:
import cv2
Но эта строка выдает ошибку, указанную в заголовке этого вопроса.
У меня установлен OpenCV в C:\lib\opencv
на этой 64-разрядной машине. Я использую 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 не удалась:% 1 не является допустимым приложением Win32 говорит, чтобы добавить "новый путь двоичных файлов opencv (C:\opencv\build\bin\Release
) к Переменная среды Windows PATH". Но, как показано выше, у меня уже есть папка с двоичными файлами OpenCV (C:\lib\opencv\build\x64\vc11\bin
) в моем PATH. И моя установка OpenCV не имеет каких-либо папок Release (кроме пустого в build/java).
Любые идеи относительно того, что происходит не так? Могу ли я сказать Python для подробного отслеживания процесса загрузки? То, что ищет DLL?
Спасибо, Lars
EDIT:
Я только заметил, что согласно http://www.dependencywalker.com/, cv2.pyd
в C:\lib\opencv\build\python\2.7
- 32-разрядный, тогда как машина и Python, который я запускаю, является 64-битным. Может ли это быть проблема? И если да, где я могу найти 64-битную версию cv2.pyd?