web-dev-qa-db-fra.com

Comment importer un package installé globalement dans le dossier virtualenv

J'ai donc un dossier virtualenv appelé venv pour mon projet python.

Je peux courir:

venv/bin/pip install -r requirements.txt

Qui installe toutes les exigences dont j'ai besoin pour le projet, sauf une, M2Crypto. La seule façon de l'installer est via apt-get:

apt-get install python-m2crypto

Comment puis-je ajouter ce package installé via le dossier apt to venv?

32
Richard Knop

Ce que j'ai fait après tout:

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/
24
Richard Knop
--system-site-packages

donne accès aux modules globaux de site-packages à l'environnement virtuel.

vous pourriez faire:

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

... et vous auriez alors accès à m2crypto (avec tous les autres packages installés à l'échelle du système) dans votre virtualenv.

42
Corey Goldberg

toggleglobalsitepackages basculera l'accès à l'ensemble du système site-packages.

Remarque: Vous devez pip install virtualenvwrapper pour obtenir cette commande; la Vanille virtualenv ne l'inclut pas. Avec virtualenvwrapper vous obtenez également les commandes très utiles mkvirtualenv et rmvirtualenv, entre autres.

11
Will
venv/bin/pip install -I M2Crypto

Le -I le force à être également installé dans virtualenv, même s'il est déjà installé globalement.

3
Amber

La solution la plus simple. Dans le répertoire de l'environnement virtuel, modifiez le fichier pyvenv.cfg et définissez le paramètre include-system-site-packages = true Enregistrez le fichier. Les modules installés globalement apparaîtront la prochaine fois que vous activerez (source/bin/activate) votre environnement. Il peut être vérifié via la "liste de pip"

Prendre plaisir.

3
roshnet