У меня ситуация, очень похожая на ситуацию с 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 он ищет?
Спасибо, Ларс
РЕДАКТИРОВАТЬ:
Я только что заметил, что, согласно http://www.dependencywalker.com/ , cv2.pyd
in C:\lib\opencv\build\python\2.7
является 32-битным, тогда как машина и Python, на которых я работаю, являются 64-битными. Может ли это быть проблема? И если да, то где мне найти 64-битную версию cv2.pyd?
PYTHONPATH
использовал записи, которые оставила там установка библиотеки SimpleCV. Несмотря на то, что я уже удалил SimpleCV, PYTHONPATH
он не был восстановлен и указывал на некоторые каталоги с конфликтующими версиями OpenCV, оставленными установкой SimpleCV. Решение: очистить PYTHONPATH
.