GNU/Linux >> LINUX-Kenntnisse >  >> Linux

OpenCV und Python/virtualenv?

Einfach den cv2*.so kopieren Datei in den Ordner site-packages der virtuellen Umgebung. Zum Beispiel:

cp /usr/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so ~/your_virt_env_folder/YOUR_VIRT_ENV_NAME/lib/python3.6/site-packages/

Ich verwende Makefiles in meinen Projekten, um OpenCV in Python virtualenv zu installieren. Unten ist ein Musterbeispiel. Es erfordert, dass Sie bereits OpenCV-Bindungen für Ihr System Python (/usr/bin/python ), die Sie mit so etwas wie yum install opencv-python erhalten können oder apt-get install python-opencv .

Machen Sie erste Abfragen von Pythons cv2 -Modul und ruft den Speicherort der installierten Bibliotheksdatei ab. Dann kopiert es cv2.so in das virtualenv-Verzeichnis.

VENV_LIB = venv/lib/python2.7
VENV_CV2 = $(VENV_LIB)/cv2.so

# Find cv2 library for the global Python installation.
GLOBAL_CV2 := $(shell /usr/bin/python -c 'import cv2, inspect; print(inspect.getfile(cv2))')

# Link global cv2 library file inside the virtual environment.
$(VENV_CV2): $(GLOBAL_CV2) venv
    cp $(GLOBAL_CV2) [email protected]

venv: requirements.txt
    test -d venv || virtualenv venv
    . venv/bin/activate && pip install -r requirements.txt

test: $(VENV_CV2)
    . venv/bin/activate && python -c 'import cv2; print(cv2)'

clean:
    rm -rf venv

(Sie können das obige Snippet kopieren und in ein Makefile einfügen, aber stellen Sie sicher, dass Sie Einzüge durch Tabulatorzeichen ersetzen, indem Sie sed -i s:' ':'\t':g Makefile ausführen oder ähnliches.)

Jetzt können Sie die Vorlage ausführen:

echo "numpy==1.9.1" > requirements.txt
make
make test

Beachten Sie, dass wir anstelle des symbolischen Links tatsächlich die .so-Datei kopieren, um das hier beschriebene Problem zu vermeiden:https://stackoverflow.com/a/19138136/1510289


Virtualenv erstellt eine separate Python-Umgebung. Sie müssen alle Ihre Abhängigkeiten neu installieren. BEARBEITEN es ist wahr Pip scheint nicht gut mit opencv zu spielen. Der Fehler des fehlenden Moduls kann behoben werden, indem Sie das gemeinsam genutzte cv-Objekt in Ihre virtuelle Umgebung kopieren. Weitere Informationen in der unten verlinkten Frage.


Linux
  1. Holen Sie sich den aktuellen Fenstertitel mit Python und Xorg

  2. Python virtualenv-Fragen

  3. Gemischtes Shell- und Python-Skript möglich?

  4. Installieren Sie tkinter und Python lokal

  5. pip und pip3 - beide zeigen auf python3.5?

Umgang mit fehlenden Daten in Python:Ursachen und Lösungen

So installieren Sie Python Pip unter Ubuntu 18.04 und 20.04

Pipx – Installieren und Ausführen von Python-Anwendungen in isolierten Umgebungen

So installieren Sie Python 2 und Python 3 unter CentOS 8

So installieren und verwenden Sie Python-Mistune unter Linux

So installieren Sie Anaconda Navigator und JupyterLab unter Linux