C'est possible, bien sûr.
Par exemple, je peux télécharger python-dbus comme ceci: $ Sudo apt-get download python-dbus
Mais que dois-je faire ensuite, avec ce paquet .deb dans mon virtualenv actuel?
Si vous avez vraiment besoin de le faire de cette façon, vous pouvez simplement copier les fichiers installés globalement directement dans votre virtualenv. Par exemple, je ne pouvais pas utiliser pycurl car les bibliothèques requises n’étaient pas installées, mais apt-get install python-pycurl
l’a fait. Alors j'ai fait ce qui suit:
Sudo apt-get install python-pycurl
cp /usr/lib/python2.7/dist-packages/pycurl* ~/.virtualenvs/myenv/lib/python2.7/site-packages/
L'installation a indiqué qu'il l'ajoutait à /usr/lib/python2.7. J'ai donc cherché dans ce répertoire un paquet-site ou un paquet-dist avec pycurl, après avoir examiné les fichiers, je les ai copiés dans mon virtualenv. Vous devez également copier tous les exécutables de bin dans le répertoire bin de votre virtualenv.
En outre, exécuter un pip install -r requirements.txt
a trouvé avec succès pycurl et l'a simplement ignoré comme si je l'avais installé via pip.
Pourquoi voudriez-vous faire cela? Le but est d'éviter de faire des choses comme ça ...
virtualenv whatever
cd whatever
bin/pip install dbus-python
Vous pouvez également choisir de spécifier --no-site-packages
à virtualenv
pour le garder très isolé.
Commencez par installer les bibliothèques de développement dbus (vous aurez peut-être besoin d’autres bibliothèques de développement, mais c’est tout ce dont j'avais besoin).
Sudo apt-get install libdbus-1-dev libdbus-glib-1-dev
Ensuite, avec votre virtualenv activé, exécutez ce qui suit. Ça va échouer mais ça va.
pip install dbus-python
Enfin, allez dans le répertoire de construction de votre virtualenv et installez-le de manière non-Pythonic.
cd $VIRTUAL_ENV/build/dbus-python
chmod +x configure
./configure --prefix=$VIRTUAL_ENV
make
make install
Une autre solution consiste à installer globalement, puis à permettre à virtualenv de le voir. Par exemple, supposons que nous voulions installer matplotlib pour Python 3: