У мене ситуація дуже схожа на ситуацію в ImportError: не вдалося завантажити DLL:% 1 не є дійсною програмою Win32 , але відповідь там не працює для мене.
Мій код Python говорить:
import cv2
Але цей рядок видає помилку, показану в заголовку цього питання.
У мене C:\lib\opencv
на цьому 64-бітному верстаті встановлений 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 не вдалося завантажити:% 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
вхід C:\lib\opencv\build\python\2.7
є 32-розрядним, тоді як машина та Python, якими я керую, є 64-розрядні. Чи може це бути проблемою? І якщо так, то де я можу знайти 64-бітну версію cv2.pyd?
PYTHONPATH
вміст містив записи, які інсталювала бібліотека SimpleCV. Незважаючи на те, що я вже видалив SimpleCV, файл PYTHONPATH
не було відновлено і вказував на деякі каталоги з суперечливими версіями OpenCV, залишеними установкою SimpleCV. Рішення: очистити PYTHONPATH
.