2012-07-11 14 views

Respuesta

16

Si realmente necesita hacerlo de esta manera, puede copiar los archivos que se instalan globalmente directamente en su Virtualenv. Por ejemplo, no pude hacer que pycurl funcionara porque las bibliotecas requeridas no se estaban instalando, pero apt-get install python-pycurl sí. Así que hice lo siguiente:

sudo apt-get install python-pycurl 
cp /usr/lib/python2.7/dist-packages/pycurl* ~/.virtualenvs/myenv/lib/python2.7/site-packages/ 

La instalación indican que se agregó a /usr/lib/python2.7. Así que busqué en ese directorio un sitio-paquetes o paquetes de distribución con pycurl, después de mirar los archivos los copié en mi archivo virtual. También debe copiar cualquier archivo ejecutable del contenedor en el directorio bin de su empresa virtual.

También, ejecutando un pip install -r requirements.txt encontró pycurl con éxito allí y simplemente se saltó sobre él como si lo hubiera instalado a través de pip.

+0

Sí. Encontré la misma decisión: solo un enlace (ln) a las bibliotecas que se instaló a través de apt-get. –

+0

Esto no funciona para PyQt5 en Python 3. Devuelve "ImportError: Ningún módulo llamado 'sip' cuando se intenta importar QWidgets – Moustache

5

¿Por qué querrías hacer esto? El punto es evitar hacer cosas por el estilo ...

virtualenv whatever 
cd whatever 
bin/pip install dbus-python 

También puede optar por especificar --no-site-packages a virtualenv para mantenerla aislada adicional.

+2

Versiones recientes de virtualenv deprecate --no-site-packages, ya que es el nuevo valor predeterminado. –

+0

@ColinDunklau No estaba enterado de eso y es bueno saberlo. Gracias. –

+0

Thx por su respuesta. Pero me refiero a este caso cuando no podemos usar la instalación de pip, solo tenemos un repositorio en formato .deb, ¿qué debo hacer entonces? –

3

Primero instale las bibliotecas de desarrollo dbus (es posible que tenga algunas otras bibliotecas dev, pero esto es todo lo que necesitaba)

sudo apt-get install libdbus-1-dev libdbus-glib-1-dev 

A continuación, con su virtualenv activa, ejecute el siguiente. Fallará pero está bien.

pip install dbus-python 

Por último, entra en el directorio de construcción de virtualenv e instalarlo el camino no Pythonic.

cd $VIRTUAL_ENV/build/dbus-python 
chmod +x configure 
./configure --prefix=$VIRTUAL_ENV 
make 
make install 
Cuestiones relacionadas