En un mundo perfecto, me gustaría usar pip dentro de un --no-site-packages virtualenv.

Sin embargo: OpenCV. Por lo que he leído hasta ahora, parece complicado instalar OpenCV de manera confiable en un virtualenv, por lo que he aceptado tener que instalarlo como un paquete del sistema por ahora (la plataforma de destino es Ubuntu, así que estoy instalando python-opencv con apto). Sin embargo, me gustaría instalar todo lo demás con pip en mi virtualenv.

Para que OpenCV esté disponible para mi aplicación, inicialicé virtualenv con --system-site-packages.

Al instalar otras dependencias con env/bin/pip install -U -r requirements.txt ahora, algunos de los requisitos (que resultan ser dependencias de OpenCV) se consideran satisfechos. No es sorprendente, pero tampoco es lo que quiero.

¿Hay alguna forma sensata de hacer que solo OpenCV esté disponible desde los paquetes del sitio, y tener todo lo demás cargado e instalado en virtualenv?

2
nfelger 28 ago. 2014 a las 12:21

2 respuestas

La mejor respuesta

En 2018, puede instalar fácilmente versiones recientes de OpenCV en un virtualenv usando opencv-python paquete.

0
nfelger 25 jun. 2018 a las 09:42

Ya instalé OpenCV pero para usar esa instalación en mi entorno virtual seguí los siguientes pasos


# This is the path for my system-site-packages
$ cd /home/aadi/.local/lib/python3.6/site-packages
$ ls | grep cv`
# Here if you have open cv installed you'll find the result. For me, it was something like this
#I am attaching an image of my result'

Resultado (Imagen) de mi final

# Then I copied both of the cv2 files i.e cv2 and opencv_python-3.4.0.12.dist-info to my virtual env site-packages.

$ cp -r opencv_python-3.4.0.12.dist-info /home/aadi/prog/python_apps/venv/lib/python3.6/site-package && cp -r cv2 /home/aadi/prog/python_apps/venv/lib/python3.6/site-packages    

Aquí python_apps es el directorio donde he creado mi entorno virtual ¡Después de eso, reactivé mi entorno virtual y mi bingo! importar cv2 no da ningún error

(venv) ➜  python_apps python
Python 3.6.5 (default, Apr  1 2018, 05:46:30) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> 
0
Aditya 15 jun. 2018 a las 19:09