2010-02-03 20 views
6

Nie mogę uruchomić przykładowych programów w języku Python. Podczas wykonywania polecenia Pythona "from opencv import cv" otrzymuję komunikat "ImportError: No module named _cv". W katalogu site-packages jest nieaktualna _cv.pyd, ale nigdzie nie ma _cv.py. Zobacz krok 5 poniżej.OpenCV 2.0 i Python

MS Windows XP, VC++ 2008, Python 2.6, OpenCV 2.0

Oto co mam zrobić.

  1. Pobrano i uruchomiono instalator MS Windows dla OpenCV2.0.
  2. pobierane i instalowane CMake
  3. pobierane i instalowane SWIG
  4. Ran CMake. Po odznaczeniu "ENABLE_OPENMP" w interfejsie GUI CMake, udało mi się zbudować OpenCV za pomocą INSTALL.vcproj i BUILD_ALL.vcproj. Nie wiem, na czym polega różnica, więc zbudowałem wszystko w obu tych plikach projektu. Programy z przykładu C działają bez zarzutu.
  5. Skopiowano zawartość pakietów OpenCV2.0/Python2.6/lib/site do zainstalowanego katalogu Python2.6/lib/site-packages. Zauważam, że zawiera on stary _cv.pyd i stary plik libcv.dll.a.
+2

Począwszy od wersji 2.0, OpenCV zawiera dwa osobne zestawy powiązań w Pythonie. Wartością domyślną są "nowe" powiązania w Pythonie; stare wiązania SWIG są domyślnie wyłączone podczas używania CMake. Ponieważ nowe wiązania są niekompletne, a stare bolesne w użyciu, jest to dość bałagan i nie zdziwiłbym się, gdybyś nadal miał problemy poza tym. – ezod

+2

Dlaczego, dlaczego, dlaczego moce Pythona nieustannie łamią wszystko? Każda nowa wersja to koszmar. Wyobraź sobie, że w każdy wtorek, kiedy pojawią się łatki systemu operacyjnego Windows, trzeba było przekonać wszystkich dostawców oprogramowania, aby stworzyli nowe wersje swoich rzeczy, a następnie musieli zainstalować nowe wersje i zmienić wszystkie programy, aby je powiązać. –

+1

Czy "nowe" powiązania dla Python 2.6, czy tylko Python 3.0? –

Odpowiedz

3

Po kroku 1 (Instalator) po prostu skopiuj zawartość C:\OpenCV2.0\Python2.6\Lib\site-packages do C:\Python26\Lib\site-packages (przyjęto standardową ścieżkę instalacji). To wszystko.

Jeśli masz kamery zainstalowane można spróbować camshift.demo w C:\OpenCV2.0\samples\python

przestarzałej rzeczy (C:\OpenCV2.0\samples\swig_python) nie działa w tej chwili jak ktoś napisał wyżej. Ludzie OpenCV nad tym pracują. Oto pełne zdjęcie:

31/03/10 (hopefully) Next OpenCV Official Release: 2.1.0 is due March 31st, 2010. link://opencv.willowgarage.com/wiki/Welcome/Introduction#Announcements

04/03/10 [james]rewriting samples for new Python 5:36 PM Mar 4th
via API link://twitter.com/opencvlibrary

12/31/09 We've gotten more serious about OpenCV's software engineering. We now have a full C++ and Python interface. link://opencv.willowgarage.com/wiki/OpenCV%20Monthly

9/30/09 Several (actually, most) SWIG-based Python samples do not work correctly now. The reason is this problem is being investigated and the intermediate update of the OpenCV Python package will be released as soon as the problem is sorted out. link://opencv.willowgarage.com/wiki/OpenCV%20Monthly

+0

Czy były jakieś postępy w tej sprawie? –

+0

Działa dobrze z 2.2. Dzięki. – Wok

4

Powinieneś zainstalować opencv używając Pythona dist utils. Można to osiągnąć, przechodząc do katalogu OpenCV i wpisując:

python setup.py install 

Edit:

OpenCV wykorzystuje distutils, ale nieco pośrednio. W systemie UNIX instalacja jest bardziej wzdłuż linii:

configure 
make -j 8 
make install 

dla Windows, najprostszym rozwiązaniem jest prawdopodobnie pobrać instalator, podobnie jak najłatwiejsze podejście dla systemu Linux jest użycie menedżera pakietów, aby zainstalować aplikację. Nie można po prostu skopiować OpenCV do ścieżki Pythona i sprawić, aby wszystko działało, ponieważ opiera się na wielu bibliotekach C, które muszą być skompilowane.

Wyobrażam sobie, że instalator systemu Windows instalowałby pliki binarne (zamiast kompilować wszystko, i prawdopodobnie źle jest używać instalatora i samemu skompilować wszystko). W żadnym wypadku nie kopiuj plików samodzielnie, ani wykonaj instalacji make lub użyj instalatora.

Życzymy powodzenia w OpenCV i mam nadzieję, że zechcesz z niego skorzystać!

+0

Próbowałem tego. Plik Setup.py nie istnieje nigdzie w katalogach OpenCV. –

+1

Instalator Windowsa dla OpenCV 2.0 wymaga kompilacji ze źródła. Tylko kilka przykładowych programów jest wysyłanych w formie wykonywalnej, a są to MinGW, a nie VC++. Musisz skompilować wszystkie biblioteki. Walczyłem też z tym. Nie wiem, co zrobić z hakami Pythona. Sądzę, że będę żył bez nich. –

1

Jak już wyjaśnił Roger, sytuacja była przez pewien czas nieco zagmatwana. Powodem było przeniesienie opencv z implementacji tylko C do mieszanej implementacji C i C++ w opencv2. Powoduje to bóle głowy dla wszystkich opakowań, w tym dla Pythona.Więc proszę nie narzekać, że faceci z Pythona "ciągle łamią rzeczy", ponieważ tego nie robili. (przy okazji, jedyną poważną niezgodnością w pythonie była wartość od 2 do 3, a to było dobrze reklamowane).

Dobrą wiadomością jest to, że ktoś próbuje naprawić ten bałagan, pakując opencv2 z doładowaniem. Nie używałem go jeszcze intensywnie, ale teraz wygląda bardzo dobrze. http://code.google.com/p/pyopencv/ Działa teraz w python2, ale jest już w 99% kompatybilny z python3.

PS nie jest dobrym stylu, aby zachować dziennik swoich postępów w odpowiedzi na pytanie stackoverflow: Dodaj odpowiedź po rozwiązaniu go.