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 respuestas
En 2018, puede instalar fácilmente versiones recientes de OpenCV en un virtualenv usando opencv-python paquete.
Ya instalé OpenCV pero para usar esa instalación en mi entorno virtual seguí los siguientes pasos
- Encuentre su directorio para los paquetes de sitio del sistema. Puede consultar la respuesta de @peterino
- Sigue estos 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
>>>
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.