GNU/Linux >> Tutoriels Linux >  >> Linux

OpenCV et python/virtualenv ?

Copiez simplement le cv2*.so dans le dossier site-packages de l'environnement virtuel. Par exemple :

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/

J'utilise des makefiles dans mes projets pour installer OpenCV dans Python virtualenv. Vous trouverez ci-dessous un exemple passe-partout. Cela nécessite que vous ayez déjà des liaisons OpenCV présentes pour votre système Python (/usr/bin/python ) que vous pouvez obtenir en utilisant quelque chose comme yum install opencv-python ou apt-get install python-opencv .

Faire les premières requêtes du système Python cv2 module et récupère l'emplacement du fichier de bibliothèque installé. Ensuite, il copie cv2.so dans le répertoire 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

(Vous pouvez copier-coller l'extrait ci-dessus dans un Makefile, mais assurez-vous de remplacer les indentations par des caractères de tabulation en exécutant sed -i s:' ':'\t':g Makefile ou similaire.)

Vous pouvez maintenant exécuter le modèle :

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

Notez qu'au lieu du lien symbolique, nous copions en fait le fichier .so afin d'éviter le problème noté ici :https://stackoverflow.com/a/19138136/1510289


Virtualenv crée un environnement python séparé. Vous devrez réinstaller toutes vos dépendances. EDIT c'est vrai pip ne semble pas bien jouer avec opencv. L'erreur de module manquant peut être résolue en copiant l'objet partagé cv dans votre virtualenv. Plus d'informations dans la question liée ci-dessous.


Linux
  1. Comment :Python 3 et création d'un environnement virtuel (venv) dans CentOS 7

  2. Obtenir le titre de la fenêtre actuelle avec Python et Xorg

  3. Installer tkinter et python localement

  4. pip et pip3 - tous deux pointant vers python3.5 ?

  5. Quand utiliser Bash et quand utiliser Perl/Python/Ruby ?

Gestion des données manquantes en Python :causes et solutions

Comment installer Python Pip sur Ubuntu 18.04 et 20.04

Pipx - Installer et exécuter des applications Python dans des environnements isolés

Comment installer Python 2 et Python 3 sur CentOS 8

Comment installer et utiliser Python-Mistune sous Linux

Comment installer Anaconda Navigator et JupyterLab sous Linux