GNU/Linux >> Znalost Linux >  >> Linux

OpenCV a python/virtualenv?

Jednoduše zkopírujte cv2*.so soubor do složky site-packages virtuálního prostředí. Například:

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/

Ve svých projektech používám makefiles k instalaci OpenCV uvnitř Python virtualenv. Níže je standardní příklad. Vyžaduje, abyste již měli vazby OpenCV pro váš systémový Python (/usr/bin/python ), který můžete získat pomocí něčeho jako yum install opencv-python nebo apt-get install python-opencv .

Proveďte první dotazy systému Python cv2 modul a načte umístění nainstalovaného souboru knihovny. Poté zkopíruje cv2.so do adresáře virtualenv.

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

(Výše uvedený úryvek můžete zkopírovat a vložit do souboru Makefile, ale nezapomeňte nahradit odsazení znaky tabulátoru spuštěním sed -i s:' ':'\t':g Makefile nebo podobně.)

Nyní můžete spustit šablonu:

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

Všimněte si, že místo symbolického odkazu ve skutečnosti zkopírujeme soubor .so, abychom se vyhnuli problému uvedenému zde:https://stackoverflow.com/a/19138136/1510289


Virtualenv vytváří samostatné prostředí pythonu. Budete muset znovu nainstalovat všechny své závislosti. EDIT, je pravda, že pip si s opencv nehraje dobře. Chybu chybějícího modulu lze vyřešit zkopírováním sdíleného objektu cv do vašeho virtualenv. Více informací v níže odkazované otázce.


Linux
  1. Získejte aktuální název okna pomocí Pythonu a Xorg

  2. Otázky Python virtualenv

  3. Nainstalujte lokálně tkinter a python

  1. pip a pip3 - oba ukazují na python3.5?

  2. Exportujte proměnnou z bash a použijte ji v Pythonu

  3. Kdy použít Bash a kdy Perl/Python/Ruby?

  1. Prozkoumání Podman RESTful API pomocí Pythonu a Bash

  2. Jak nainstalovat Python 2 a Python 3 na Fedoru 35

  3. Jak na to:Python 3 a vytvoření virtuálního prostředí (venv) v CentOS 7