Installieren von OpenCV für Python unter Ubuntu, Abrufen von ImportError: Kein Modul mit dem Namen cv2.cv.


87

Ich habe ein Ubuntu 14.04-System, auf dem ich OpenCV installieren und mit Python 2.x verwenden möchte.

Ich habe OpenCV anhand der folgenden Anweisungen installiert: https://help.ubuntu.com/community/OpenCV

Die Installation schien ordnungsgemäß zu laufen, keine Fehler, das Skript endete mit der Ausgabe

OpenCV 2.4.9 ready to be used

Wenn ich versuche, das Beispiel-Python-Skript auszuführen, wird Folgendes angezeigt:

$ python opencv.py
Traceback (most recent call last):
  File "opencv.py", line 1, in <module>
    from cv2.cv import *
ImportError: No module named cv2.cv

Ich vermute, ich weiß warum, ich weiß nur nicht, wie ich es beheben soll. OpenCV wurde in dem aktuellen Verzeichnis installiert, in dem ich mich befand, als ich das Installationsskript ausführte. Es ist ein Unterverzeichnis meines Basisordners.

Andere, die diesen Importfehler nach der Installation erhalten, scheinen ein Pfadproblem zu haben und haben Glück, dies ihrem Code hinzuzufügen:

import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')

oder aktualisieren Sie ihren PYTHONPATH mit demselben Verzeichnis. Ich habe versucht, diesen Code hinzuzufügen, es macht keinen Unterschied. Ich sehe keine Dateien im Verzeichnis "site-packages". Sollte ich die Installation in diesem Verzeichnis durchgeführt haben? Ich stelle mir vor, die Installationsanleitung hätte das klargestellt. Ich vermute, dass mein Problem damit zusammenhängt, dass Python die OpenCV-Installation nicht findet, bin mir aber nicht sicher, wie ich vorgehen soll.

Bitte helfen Sie mir, eine benutzerfreundliche Installation von OpenCV so einfach wie möglich zu erhalten.


1
möglich Duplikat von OpenCV - finden kann nicht Modul cv2
krock

@krock Ich denke nicht, dass dies ein Trottel davon ist. Ich habe die Datei cv2.so nicht in meinem Site-Packages-Verzeichnis wie dieser Benutzer. Außerdem habe ich die beiden Lösungen erwähnt, die in diesem Beitrag angegeben sind, und keine hat hier für mich funktioniert.
Robm

1
aber du kannst cv2 importieren? Das alte cv (oder cv2.cv) Modul wird in den kommenden opencv Versionen nicht verfügbar sein
berak

@berak Nein, ich kann auch cv2 nicht importieren.
Robm

Antworten:


110

Ich denke, Sie haben das python-opencvPaket nicht.

Ich hatte genau das gleiche Problem und

sudo apt-get install python-opencv

löste das Problem für mich.

Sie können opencv über den folgenden Link installieren: https://www.learnopencv.com/install-opencv3-on-ubuntu/ Es funktioniert für mich. Die Installation von apt-get enthält nicht viele Pakete von opencv


Warum sollte sich Ihre Antwort von den anderen unterscheiden?
Michele d'Amico

Das OP hat das Paket. Andernfalls würde der ImportError "kein Paket mit dem Namen cv2" sagen.
Andy Hayden

Gleiches Problem, Installation gemäß den Anweisungen hier versucht: help.ubuntu.com/community/OpenCV Kein Glück. Diese Lösung hat bei mir funktioniert. Vielen Dank!
Jschabs

2
Das war so einfach! Nach der Qual über so viele andere unglaublich komplexe "Lösungen", von denen keine funktionierte, war dies der Trick. Vielen Dank! :-)
Rafael_Espericueta

sudo dnf installiere opencv-python für fedora.
Dinuka Thilanga

30

Ich hatte auch dieses Problem. Versuchte verschiedene Dinge. Aber endlich

conda install opencv

arbeitete für mich.


1
Dies funktioniert unter der Annahme, dass Ihre Python Anaconda ist.
ComputerScientist

4
Hinweis conda install opencvfunktioniert nicht für Windows 64 Bit.
shahar_m

17

Wenn Sie so einfach wie möglich möchten, installieren Sie aus dem Repository:

sudo apt-get install python-opencv libopencv-dev python-numpy python-dev

1
Ich musste das opencv-devTeil ausschneiden , aber ansonsten funktionierte diese Antwort gut für mich.
Brian Z

Beste Antwort hier!
Giacomo1968

11

Verwenden Sie pip:

https://pypi.python.org/pypi/pip

$ pip install SomePackage
  [...]
  Successfully installed SomePackage

Und wenn Sie PYTHONPATH mit sys, PYTHONPATH, einen Pfad hinzufügen, wird dieser beim Schließen Ihrer Python-Shell immer auf die Standardwerte neu gestartet. Überprüfen Sie diesen Thread:

Fügen Sie PYTHONPATH dauerhaft ein Verzeichnis hinzu

Fügen Sie zuerst openCV zu Ihrem Pfad hinzu (Kurzanleitung):

https://help.ubuntu.com/community/OpenCV

Danach installieren Sie die Nicht-Python-Pakete pyopencv hängt ab von:

sudo apt-get build-dep python-opencv

Verwenden Sie zum Schluss pip:

pip install pyopencv

Sie können dieses Tutorial auch überprüfen, um openCV in Ubuntu 14.04 LTS zu installieren

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/


4
Welches Pip-Paket soll ich für OpenCV verwenden? Unter pypi.python.org/pypi sind viele aufgeführt , wobei nicht klar ist, welche offiziell und / oder aktuell sind.
Robm

Ich werde meine Antwort mit einer kurzen Anleitung bearbeiten, bitte markieren Sie sie als richtig, wenn sie nützlich war
Juan David

2
Das ist nicht richtig. Der Grund, warum dieser Fehler angezeigt wird, ist, dass das cv-Submodul in neueren Versionen nicht mehr vorhanden ist.
Andy Hayden

Ich spreche nicht über den Grund des Fehlers. Ich gebe nur eine mögliche Lösung. Es funktioniert für mich, könnte vielleicht für jemand anderen nützlich sein @AndyHayden
Juan David

FEHLER: Es konnte keine Version gefunden werden, die die Anforderung pyopencv erfüllt (aus den Versionen: 2.0.wr1.0.1-Demo, 2.0.wr1.0.1, 2.0.wr1.1.0, 2.1.0.wr1.0.0, 2.1.0.wr1). 0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0) FEHLER: Keine passende Verteilung für pyopencv gefunden
Stepan

10

Versuchen Sie, conda install -c conda-forge opencvwenn Sie Anakonda verwenden, es funktioniert!


8

Finden Sie heraus, wo sich das cv2.sobefindet, /usr/local/lib/python2.7/dist-packagesund fügen Sie dies zu Ihrem hinzu, ~/.bashrcindem Sie Folgendes tun:

sudo gedit ~/.bashrc

und hinzufügen

export PYTHONPATH=/usr/local/lib/python2.7/dist-packages:$PYTHONPATH

In der letzten Zeile

Und dann denken Sie daran, ein anderes Terminal zu öffnen. Dies kann funktionieren, und ich habe mein Problem gelöst. Hoffe es kann dir helfen.


5

Überprüfen Sie, ob cv2.so kompiliert wurde, und platzieren Sie es in: /usr/local/lib/python2.7/site-packages. Exportieren Sie dann diesen Pfad wie folgt

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

Gleich wie in der Antwort hier


4

Meine Umgebung:

  • Ubuntu 15.10
  • Python 3.5

Da keine der vorherigen Antworten für mich funktioniert hat, habe ich OpenCV 3.0 von http://opencv.org/downloads.html heruntergeladen und das Installationshandbuch befolgt . Ich habe den folgenden cmakeBefehl verwendet:

$ ~/Programs/opencv-3.0.0$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D PYTHON3_EXECUTABLE=/usr/bin/python3.5 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.5m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages ..

Jeder Schritt des Tutorials ist wichtig. Vergessen Sie besonders nicht anzurufen sudo make install.



3

Erstellen Sie einen symbolischen Link zu OpenCV. Z.B:

cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
ln -s /usr/local/lib/python2.7/dist-packages/cv.py cv.py

2

Wenn Sie wirklich sicher sind, dass Sie cv2 installiert haben, es aber keinen Modulfehler gibt. Dafür gibt es eine Lösung. Wahrscheinlich haben Sie eine cv2.soDatei in Ihrem Verzeichnis

/usr/local/lib/python2.7/site-packages/cv2.so

Verschieben Sie diese cv2.soDatei nach

/usr/lib/python2.7/site-packages

Kopieren Sie die Datei in das Verzeichnis site-packages



2

Es ist ein Alptraum für die vollständige Installation, aber ich gebe noch eine Hoffnung, dass Sie vermeiden können, opencv aus dem Quellcode zu erstellen:

pip installiere opencv-contrib-python


1

Wenn Sie die Pycharm-Plattform verwenden, gehen Sie ganz einfach in die Ansicht => Tool Windows ==> Python-Konsole. Danach sehen Sie unten die Konsole mit [1]: Geben Sie dies ein!pip install opencv-python


1

Ich habe alle anderen Optionen hier ausprobiert, konnte aber import cv2unter Ubuntu nicht mit Anaconda arbeiten. Dies ist das einzige, was geholfen hat:

pip install opencv-python


Danke. es funktioniert: pip3 installiere opencv-python. ////// Testen: python3 / import numpy / import cv2
Soner PALANCI

1

Sie können nach dem offiziellen OpenCV-Tutorial für die Quelle erstellen . Der entscheidende Teil ist es, die festlegen PYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATHund PYTHON3_NUMPY_INCLUDE_DIRSParameter für python3.6. Hier sind alle Schritte:

  1. Klonen Sie das Repo

    git clone https://github.com/opencv/opencv.git
  2. buildVerzeichnis erstellen

    cd ~/opencv
    mkdir build
    cd build
  3. Konfigurieren

    cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local .. \
          -D PYTHON_INCLUDE_DIR=/usr/include/python3.6 \
          -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m \
          -D BUILD_NEW_PYTHON_SUPPORT=ON \
          -D BUILD_opencv_python3=ON \
          -D HAVE_opencv_python3=ON \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D PYTHON3_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
          -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages .. \
          -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/user/.local/lib/python3.6/site-packages/numpy/core/include/
  4. Bauen

    make -j8
  5. Installieren Sie Bibliotheken

    sudo make install
  6. Prüfung

    python3
    import cv2

Wenn Sie nicht die Fehlermeldung "Kein Modul mit dem Namen cv2" erhalten, war die Installation erfolgreich.

Hinweis: Wenn Sie den Pfad numpyfür den PYTHON3_NUMPY_INCLUDE_DIRSParameter nicht kennen , können Sie ihn durch Ausführen import numpyund dann numpy.__file__in einer Python3-Shell finden.



0

Für mich war dieses Problem auf die Tatsache zurückzuführen, dass ich die Datei cv2.so im ~/.virtualenvs/cv/lib/python3.5/site-packagesOrdner nicht ordnungsgemäß sym-verknüpft hatte (der Name Ihrer virualenv lautet möglicherweise nicht "cv", Ihre Python-Version lautet möglicherweise nicht 3.5 - adjust entsprechend).

Wenn Sie zu dem ~/.virtualenvs/cv/lib/python3.5/site-packagesOrdner und ls gehen, sollte die Datei cv2.so hellblau (Ubuntu 16.04) angezeigt werden, um anzuzeigen, dass sie verknüpft ist. Sie können den Speicherort des Links überprüfen, indem Sie Folgendes eingeben: readlink cv2.so

Wenn cv2.so rot angezeigt wird (wie bei mir), geben Sie die Datei ein und geben Sie Folgendes ein: (für meine Installation von Python 3.5)

ln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

ODER (wenn Sie Python 3.6 haben)

ln -s /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

Wenn Sie in Python 2.6 oder Python 2.7 arbeiten, geben Sie stattdessen Folgendes ein:

ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so

Wenn die Dateien cv2.so oder cv2.cpython-36m-x86_64-linux-gnu.so an Ihrem /usr/local/lib/python***/dist-packagesSpeicherort nicht vorhanden sind , überprüfen Sie, ob sie sich in einem /usr/local/lib/python***/sites-packagesOrdner befinden. Wenn ja, passen Sie den Pfad entsprechend an. Wenn nicht, ist bei Ihrer opencv-Installation ein Fehler aufgetreten.

Diese Antwort wurde von Informationen hier inspiriert: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


0

Für diejenigen, die versuchen, 3.1.0 zu verwenden, aber nach der Installation von Python sagt "cv2 Modul nicht gefunden".

Sie haben wahrscheinlich Python, aber nicht Python-Dev.

sudo apt-get install python-dev

Dann installieren Sie 3.1.0 neu und es wird funktionieren.


0

Versuchen Sie es mit sudo apt und installieren Sie python3-opencv

Es wird das neueste Paket von Open CV installiert.

Oder Sie können versuchen, das opencv-Paket neu zu installieren. Möglicherweise wurde es während der Installation beschädigt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.