Es posible, por supuesto.
Por ejemplo, puedo descargar python-dbus así: $ sudo apt-get descargar python-dbus
¿Pero qué debo hacer a continuación, con este paquete .deb en mi virtualenv actual?
Si realmente necesita hacerlo de esta manera, solo puede copiar los archivos que se instalan globalmente directamente en su virtualenv. Por ejemplo, no pude hacer funcionar Pycurl porque no se estaban instalando las bibliotecas requeridas, pero sí lo hizo apt-get install python-pycurl
. 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 dijo que lo estaba agregando a /usr/lib/python2.7. Así que busqué en ese directorio un paquete de sitios o paquetes dist con pycurl, después de mirar los archivos los copié en mi virtualenv. También deberías copiar cualquier archivo ejecutable de bin en el directorio bin de tu virtualenv.
Además, ejecutar un pip install -r requirements.txt
Requirements.txt encontró pycurl allí y lo salté como si lo hubiera instalado a través de pip.
Por qué querrías hacer esto? El objective es evitar hacer cosas así …
virtualenv whatever cd whatever bin/pip install dbus-python
También puede elegir especificar --no-site-packages
para virtualenv
para mantenerlo aislado adicionalmente.
Primero instale las bibliotecas de desarrollo de dbus (es posible que necesite otras bibliotecas de desarrollo, pero esto es todo lo que necesito)
sudo apt-get install libdbus-1-dev libdbus-glib-1-dev
A continuación, con su virtualenv activado, ejecute lo siguiente. Fallará pero está bien.
pip install dbus-python
Finalmente, ingrese en el directorio de comstackción de su virtualenv e instálelo de una manera no pythónica.
cd $VIRTUAL_ENV/build/dbus-python chmod +x configure ./configure --prefix=$VIRTUAL_ENV make make install
Una solución alternativa es instalar globalmente, luego seguir permitiendo que virtualenv pueda verlo. Como ejemplo, digamos que queremos instalar matplotlib para Python 3: