Cómo importar un paquete instalado globalmente a la carpeta virtualenv

Así que tengo una carpeta virtualenv llamada venv para mi proyecto python.

Puedo correr:

venv/bin/pip install -r requirements.txt 

Que instala todos los requisitos que necesito para el proyecto, excepto uno, M2Crypto. La única forma de instalarlo es a través de apt-get:

 apt-get install python-m2crypto 

¿Cómo puedo agregar este paquete instalado a través de la carpeta apt a venv?

 --system-site-packages 

da acceso a los módulos de paquetes de sitio globales al entorno virtual.

Podrías hacerlo:

 $ sudo apt-get install python-m2crypto $ virtualenv env --system-site-packages 

… y luego tendría acceso a m2crypto (junto con todos los otros paquetes instalados en todo el sistema) dentro de su virtualenv.

Lo que hice después de todo:

 cp -R /usr/lib/python2.7/dist-packages/M2Crypto /home/richard/hello-project/venv/lib/python2.7/site-packages/ cp -R /usr/lib/python2.7/dist-packages/OpenSSL /home/richard/hello-project/venv/lib/python2.7/site-packages/ 

toggleglobalsitepackages cambiará el acceso a los site-packages todo el sistema.

Nota: debe pip install virtualenvwrapper para obtener este comando; La vainilla virtualenv no lo incluye. Con virtualenvwrapper también obtienes los comandos mkvirtualenv y rmvirtualenv muy útiles, entre otros.

 venv/bin/pip install -I M2Crypto 

El -I obliga a que también se instale en el virtualenv, incluso si ya está instalado globalmente.

La solución más sencilla. En el directorio de entorno virtual, edite el archivo pyvenv.cfg y configure el parámetro include-system-site-packages = true Guarde el archivo. Los módulos instalados globalmente aparecerán la próxima vez que active (fuente / bin / active) su entorno. Se puede verificar a través de ‘lista de pip’

Disfrutar.