Je cherche un moyen de créer un virtualenv qui ne contiendra que quelques bibliothèques (que j'ai choisies) de l'installation de base python.
Pour être plus concret, j'essaie d'importer mon matplotlib dans virtualenv lors de la création de virtualenv. Il ne peut pas être installé efficacement avec pip ou easy_install car certaines bibliothèques du compilateur fortran lui manquent. La façon dont je l’ai fait jusqu’à présent consistait à 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 par manully d'être enregistrés par le jaune (qui imprime toutes les bibliothèques actuellement disponibles dans virtualenv).
Alors, y at-il un moyen de faire une variante sélective de la
virtualenv --system-site-packages
Créez l'environnement avec virtualenv --system-site-packages
. Activez ensuite virtualenv et lorsque vous souhaitez installer des éléments dans virtualenv plutôt que dans le python système, utilisez pip install --ignore-installed
ou pip install -I
. De cette façon, pip installera ce que vous avez demandé localement, même s'il existe une version système. Votre interprète python recherchera en premier dans le répertoire de paquets de virtualenv, ces derniers devraient donc masquer les paquets globaux.
Vous pouvez utiliser le --system-site-packages
puis "surinstaller" les éléments spécifiques à votre virtualenv. Ainsi, tout ce que vous installez dans votre virtualenv sera pris à partir de là, sinon il sera pris à partir de votre système.