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, plikPYTHONPATH
nie został przywrócony i wskazywał na niektóre katalogi z sprzecznymi wersjami OpenCV pozostawionymi przez instalację SimpleCV. Rozwiązanie: wyczyść plikPYTHONPATH
.Odpowiedzi:
Nieoficjalne pliki binarne systemu Windows dla pakietów rozszerzeń języka Python
możesz znaleźć wszystkie biblioteki Pythona stąd
źródło
Sprawdź, czy używana wersja języka Python jest również 64-bitowa. Jeśli nie, to może być problem. Używałbyś 32-bitowej wersji Pythona i zainstalowałbyś 64-bitowe pliki binarne dla biblioteki OPENCV.
źródło
Wow, znalazłem kolejny przypadek tego problemu. Żadne z powyższych nie działało. W końcu wykorzystałem zdolność Pythona do introspekcji, co było ładowane. Dla Pythona 2.7 oznacza to:
Okazało się, że w katalogu DLL Anaconda pojawił się zupełnie nieoczekiwany plik „cv2.pyd”, który nie został dotknięty przez wiele prób odinstalowania / instalacji. Python szukał tam najpierw i nie znalazł mojej dobrej instalacji. Usunąłem ten plik cv2.pyd i ponownie spróbowałem imp.find_module ("cv2"), a Python natychmiast znalazł właściwy plik i cv2 zaczął działać.
Więc jeśli żadne z innych rozwiązań nie działa dla Ciebie, upewnij się, że używasz introspekcji Pythona, aby zobaczyć, jaki plik python próbuje załadować.
źródło
W moim przypadku mam 64-bitowego Pythona i to lxml był złą wersją - powinienem był również użyć wersji x64. Rozwiązałem ten problem, pobierając 64-bitową wersję lxml tutaj:
https://pypi.python.org/pypi/lxml/3.4.1
To była najprostsza odpowiedź na frustrujący problem.
źródło
Właśnie miałem ten problem, okazuje się, że to tylko dlatego, że używałem wersji x64 pliku opencv. Wypróbowałem x86 i zadziałało.
źródło
Jeśli Twój system kompilacji (w moim przypadku CMake) kopiuje plik z
<name>.dll
do<name>.pyd
, pojawi się ten błąd, jeśli oryginalny plik nie był w rzeczywistości biblioteką dll. W moim przypadku budowanie bibliotek współdzielonych zostało wyłączone, więc plik źródłowy był w rzeczywistości plikiem*.lib
.Odkryłem ten błąd, ładując
pyd
plik w DependencyWalker i stwierdzając, że nie był prawidłowy.źródło
Miałem ten sam problem. Oto co zrobiłem:
Pobrałem pywin32 plik koło z tutaj , a następnie
Odinstalowałem moduł pywin32 . Aby odinstalować, wykonaj następujące polecenie w wierszu polecenia.
pip uninstall pywin32
Następnie ponownie zainstalowałem pywin32 . Aby go zainstalować, otwórz wiersz polecenia w tym samym katalogu, w którym znajduje się plik koła pywin32. Następnie wykonaj następujące polecenie.
pip install <Name of the wheel file with extension>
Plik koła będzie wyglądał następująco: piwin32-XXX-cpXX-none-win32.whlRozwiązuje problem za mnie. Możesz także spróbować. Mam nadzieję, że to zadziała również dla Ciebie.
źródło
Skopiowałem
cv2.pyd
plik z/opencv/build/python/2.7/x86
folderu zamiast z/x64
folderu doC:/Python27/Lib/site-packeges
. Wykonałem pozostałe instrukcje podane tutaj .Dodane przez kogoś innego, niezweryfikowane: kopiuję również plik
cv2.pyd
do folderuC:/Python27/Lib/site-packages/cv2
. To działa.źródło
Dla mnie problem polegał na tym, że używałem różnych wersji Pythona w tym samym projekcie Eclipse. Moja konfiguracja nie była spójna z wersjami Project Properties i Run Configuration Python.
W Projekt> Właściwości> PyDev ustawiłem Interpreter na Python2.7.11.
W Run Configurations> Interpreter użyłem domyślnego interpretera. Zmiana na Pythona 2.7.11 rozwiązała problem.
źródło
Napotkałem ten sam problem, gdy odinstalowałem i ponownie zainstalowałem inną wersję Pythona 2.7.x w moim systemie przy użyciu 32-bitowego Instalatora Windows. Ten sam błąd występuje w większości moich instrukcji importu. Odinstalowałem nowo zainstalowany Python, pobrałem 64-bitowy instalator Windows i ponownie zainstalowałem Pythona i zadziałało. Mam nadzieję, że to ci pomoże.
źródło
Miałem więc problemy z instalacją vtk pod oknami (ponieważ używam Pythona 3.7, do tej pory nie ma dostępnych plików binarnych tylko dla starszych wersji Pythona pip install vtk nie działa)
Napisałem pythona w moim cmd:
Python 3.7.3 on win32
Więc teraz wiem, że mam Pythona 3.7.3 działającego na 32-bitowym.
Następnie pobrałem odpowiednie koło na VTK ‑ 8.2.0 ‑ cp37 ‑ cp37m ‑ win32.whl
Następnie zainstalowałem to koło:
Potem to przetestowałem i zadziałało:
źródło
Zaktualizuj numpy.
pip install numpy --upgrade
Pracuj dla mnie!!
źródło
Najpierw skopiowałem
cv2.pyd
z/opencv/build/python/2.7/x86
doC:/Python27/Lib/site-packeges
. Błąd byłNastępnie zainstalowałem
numpy-1.8.0-win32-superpack-python2.7.exe
i opencv działa dobrze.źródło
Możesz zainstalować
opencv
z oficjalnych lub nieoficjalnych witryn.Odnieś się do tego pytania i tego problemu, jeśli używasz
Anaconda
.źródło
źródło
Ma bardzo proste rozwiązanie. Po zainstalowaniu
opencv
miejscecv2.pyd
odC:\opencv\build\python\2.7\ **x64**
doC:\Python27\Lib\site-packages
zamiast, umieść
cv2.pyd
odC:\opencv\build\python\2.7\ **x86**
doC:\Python27\Lib\site-packages
źródło
Otrzymałem ten błąd podczas próby zaimportowania MySQLdb.
Udało mi się odinstalować Pythona, a następnie zainstalować go ponownie.
Otrzymałem błąd po zainstalowaniu npm ( https://www.npmjs.com/get-npm ). Jedną z rzeczy, które zrobił, było zainstalowanie Pythona, mimo że już go miałem.
źródło
To zadziałało dla mnie. Próbowałem różnych metod, ale to było moje najlepsze rozwiązanie.
Otwórz wiersz polecenia i wpisz następujące;
pip install opencv-python
. (upewnij się, że masz włączony internet). następnie spróbuj ponownie zaimportować.źródło
Ten pracował ze mną
źródło
Znalazłem rozwiązanie, może możesz spróbować użyć okna cmd zamiast okna zachęty anakondy, aby rozpocząć pierwszy test scrapy.
źródło