Je cherche un moyen de faire un virtualenv qui contiendra juste quelques bibliothèques (que j'ai choisies) de l'installation de base de python.
Pour être plus concret, j'essaie d'importer mon matplotlib vers virtualenv lors de la création de virtualenv. Il ne peut pas être installé efficacement avec pip ou easy_install car il manque certaines bibliothèques du compilateur fortran. La façon dont je l'ai fait jusqu'à présent était de copier manuellement à partir de
/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/
cependant, cela empêche les liens importés manuellement d'être enregistrés par le jaune (qui imprime toutes les bibliothèques actuellement disponibles dans virtualenv).
Alors, existe-t-il un moyen de faire une variante sélective de la
virtualenv --system-site-packages
python
virtualenv
TheMeaningfulEngineer
la source
la source
--system-site-packages
. Answers suggère d'utiliser non sélectif--system-site-packages
puis de surinstaller certains packages localement, ce qui est différent et a des implications différentes.Réponses:
Créez l'environnement avec
virtualenv --system-site-packages
. Ensuite, activez le virtualenv et quand vous voulez que les choses soient installées dans le virtualenv plutôt que le système python, utilisezpip install --ignore-installed
oupip install -I
. De cette façon, pip installera ce que vous avez demandé localement même s'il existe une version à l'échelle du système. Votre interpréteur python apparaîtra en premier dans le répertoire des packages de virtualenv, ces packages doivent donc occulter les packages globaux.la source
no-global-site-packages
activé. Mais pour une raison quelconque, je ne sais pas s'il y avait un paquet utilisé par le système mondial. L'utilisationpip install -I
du package depuis l'intérieur de virtualenv n'a pas fonctionné. J'ai finalement fini par désinstaller temporairement le paquet du virtualenv et du système global, puis j'ai pu le réinstaller dans le virtualenv et dans le système (dans cet ordre). Alors maintenant, ça fonctionne bien.Vous pouvez utiliser le
--system-site-packages
puis "surinstaller" les trucs spécifiques pour votre virtualenv. De cette façon, tout ce que vous installerez dans votre virtualenv sera pris à partir de là, sinon il sera pris à partir de votre système.la source
Installez virtual env avec
et utilise
pip install -U to install matplotlib
la source
Vous pouvez utiliser
virtualenv --clear
. qui n'installera aucun paquet, puis installez ceux que vous voulez.la source