Saltar al contenido

OpenCV y python / virtualenv?

Solución:

Virtualenv crea un entorno de Python separado. Deberá reinstalar todas sus dependencias. EDITAR es cierto que pip no parece funcionar bien con opencv. El error del módulo que falta se puede resolver copiando el objeto compartido cv en su virtualenv. Más información en la pregunta vinculada a continuación.

Utilizo archivos MAKE en mis proyectos para instalar OpenCV dentro de Python virtualenv. A continuación se muestra un ejemplo estándar. Requiere que ya tenga enlaces OpenCV presentes para su sistema Python (/usr/bin/python) que puedes obtener usando algo como yum install opencv-python o apt-get install python-opencv.

Realice las primeras consultas del sistema Python’s cv2 módulo y recupera la ubicación del archivo de biblioteca instalado. Entonces copia cv2.so en el directorio 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

(Puede copiar y pegar el fragmento anterior en un Makefile, pero asegúrese de reemplazar las sangrías con caracteres de tabulación ejecutando sed -i s:' ':'t':g Makefile o similar.)

Ahora puede ejecutar la plantilla:

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

Tenga en cuenta que en lugar de un enlace simbólico, en realidad copiamos el archivo .so para evitar el problema que se indica aquí: https://stackoverflow.com/a/19138136/1510289

Simplemente copia del cv2*.so archivo a la carpeta de paquetes de sitio del entorno virtual. Por ejemplo:

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/
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *