2013-01-31 12 views
23

Mam ten problem, gdy próbuję zaimportować cv2 na pythonie i otrzymuję następujący komunikat o błędzie.ImportError: Błąd ładowania biblioteki DLL:% 1 nie jest poprawną aplikacją Win32

>>> import cv2 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

Rozumiem, że istnieje wiele postów na ten temat, gdzie sugeruje się, że bitness pakietu różni się od pakietu python.

Jednak wszystko, co używam, ma 64 bity. Jestem na win7 64 bitach, mam dystrybucję winpython 2.7.3.3, 64 bity i skompilowałem opencv w 64 bitach z instrukcją dostarczoną here i umieściłem dll cv2.pyd w folderze Lib/site-packages python.

Niestety, sugestia użycia 32-bitowej wersji Pythona nie działa już dla mnie, ponieważ muszę obsługiwać numpy tablice zbyt duże dla 32 bitów.

Dzięki!

------ UPDATE

Jedyną rzeczą, której brakuje, aby dodać nową ścieżkę binarki OpenCV (C: \ OpenCV \ zbudować \ bin \ Release) do zmiennej środowiskowej PATH systemu Windows, uruchom Pythona.

Wszystko wydaje się teraz działać dobrze!

Odpowiedz

20

Komunikat ImportError jest nieco mylące, ponieważ w odniesieniu do Win32, natomiast problem był po prostu OpenCV DLL nie znaleziono.

Ten problem został rozwiązany przez dodanie ścieżki plików binarnych opencv do zmiennej środowiskowej Windows PATH (na przykład na moim komputerze ta ścieżka to: C: \ opencv \ build \ bin \ Release).

+6

Jakie kroki zostały podjęte, aby to zrobić? – Exzile

+0

Czego nie rozumiem, dlaczego komunikat o błędzie nie zawiera biblioteki DLL, której nie można załadować? % 1 wydaje się być jedynie symbolem zastępczym dla nazwy biblioteki DLL. – antred

+0

Ah ok. Musisz więc skopiować plik cv2.pyd z folderu x64, jeśli używasz komputera 64-bitowego, aby naprawić ten błąd. @antred Jest to symbol zastępczy.Zwykle zostaje zastąpiony przez bibliotekę DLL, ale nie działa, ponieważ 32-bitowy komputer nie może załadować maszyny 64-bitowej. –

4

Można spróbować zainstalować wersję 32 bitową OpenCV

+1

Należy pamiętać, że ten problem został już rozwiązany, jak wspomniano w sekcji AKTUALIZACJA pytania. – Francis

+0

Przepraszam, moje złe :) –

+3

@Francis po znalezieniu rozwiązania, proszę zawsze dodawać je jako odpowiedź, zamiast dodawać je do pytania. – Tshepang

2

Albo musisz przebudować moduł cv2, aby wygrać 64-bit.

0

Kiedy miałem ten błąd, odszedł po tym, jak mój komputer się rozbił i uruchomił ponownie. Spróbuj zamknąć i ponownie otworzyć IDE, jeśli to nie pomoże, spróbuj ponownie uruchomić komputer. Właśnie zainstalowałem biblioteki w tym momencie bez restartowania pycharm, kiedy otrzymałem ten błąd.

Nigdy nie zamknięto PyCharm pierwszy do testowania, ponieważ mój przeklęty komputer losowo się zawiesza ... pracując nad tym, ale przynajmniej rozwiązał ten problem .. małe zwycięstwa .. :).

1

Wszystko co musisz zrobić, to skopiować plik cv2.pyd z folderu x86 (C: \ OpenCV \ budować \ python \ 2.7 \ x86 \ na przykład) do C: \ Python27 \ lib \ mutagenezy pakiety \, a nie z folderu x64.

Mam nadzieję, że ci pomogę.

Powiązane problemy