Mam sytuację bardzo podobną do tej z ImportError: ładowanie DLL nie powiodło się:% 1 nie jest poprawną aplikacją Win32 , ale odpowiedź tam nie działa.
Mój kod w Pythonie mówi:
import cv2
Ale w tym wierszu pojawia się błąd pokazany w tytule tego pytania.
Mam zainstalowany OpenCV C:\lib\opencv
na tej 64-bitowej maszynie. Używam 64-bitowego Pythona.
Moja PYTHONPATH zmienna: PYTHONPATH=C:\lib\opencv\build\python\2.7
. Ten folder zawiera cv2.pyd
i to wszystko.
Zmienna My PATH: Path=%OPENCV_DIR%\bin;...
ten folder zawiera 39 plików DLL, takich jak opencv_core246d.dll
.
OPENCV_DIR ma następującą wartość: OPENCV_DIR=C:\lib\opencv\build\x64\vc11
.
Rozwiązanie w ImportError: Ładowanie biblioteki DLL nie powiodło się:% 1 nie jest prawidłową aplikacją Win32, która nakazuje dodanie „nowej ścieżki plików binarnych opencv ( C:\opencv\build\bin\Release
) do zmiennej środowiskowej PATH systemu Windows”. Ale jak pokazano powyżej, mam już folder plików binarnych OpenCV ( C:\lib\opencv\build\x64\vc11\bin
) w mojej PATH. A moja instalacja OpenCV nie ma żadnych folderów Release (z wyjątkiem pustego w build / java).
Jakieś pomysły, co się dzieje? Czy mogę powiedzieć Pythonowi, aby szczegółowo prześledził proces ładowania? Dokładnie jakiej biblioteki DLL szuka?
Dzięki, Lars
EDYTOWAĆ:
Właśnie zauważyłem, że zgodnie z http://www.dependencywalker.com/ The cv2.pyd
w C:\lib\opencv\build\python\2.7
to 32-bitowy, podczas gdy maszyna i Python biegnę są 64-bitowe. Czy to może być problem? A jeśli tak, gdzie mogę znaleźć 64-bitową wersję pliku cv2.pyd?
PYTHONPATH
kiedyś zawierałem wpisy, które zostawiła tam instalacja biblioteki SimpleCV. Mimo że odinstalowałem już SimpleCV, plik PYTHONPATH
nie został przywrócony i wskazywał na niektóre katalogi z sprzecznymi wersjami OpenCV pozostawionymi przez instalację SimpleCV. Rozwiązanie: wyczyść plik PYTHONPATH
.