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?
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/
--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.
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.
venv/bin/pip install -I M2Crypto
Le -I
le force à être également installé dans virtualenv, même s'il est déjà installé globalement.
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.