Question

Je préfère généralement créer virtualenvs avec --no-site-packages pour l'option plus d'isolement, et aussi parce que les paquets globaux de python par défaut comprend un assez grand nombre de paquets, et généralement la plupart d'entre eux ne sont pas nécessaires. Mais je veux encore garder quelques paquets sélectionner dans global, comme PIL ou psycopg2. Y at-il une bonne façon de les inclure dans le virtualenv, qui peut également être automatisée facilement?

Était-ce utile?

La solution

Si vous utilisez virtualenvwrapper et vous pourriez être en mesure d'utiliser le postmkvirtualenv script pour créer automatiquement des liens symboliques dans le répertoire du nouveau virtualenv.

#!/bin/sh
cdsitepackages
ln -s /path/to/system/site-packages/package-name
cdvirtualenv

Autres conseils

Si vous utilisez virtualenvwrapper , la commande shell add2virtualenv doit être présent dans un virtualenv actif. Utilisation:

add2virtualenv /path/to/package

pour ajouter une entrée dans le fichier PTH _virtualenv_path_extensions.pth dans votre virtualenv site-packages.

L'avantage d'utiliser add2virtualenv plutôt que de créer des liens symboliques vous, est que vous pouvez supprimer le paquet d'être importable en commentant sa ligne dans le fichier de PTH. Cela rend plus facile de vérifier la validité de votre code contre plusieurs versions d'une bibliothèque dont elle dépend.

Je n'ai pas vraiment essayé cela avec ces forfaits spécifiques, mais je suppose que d'un simple lien symbolique du niveau mondial site-packages dans le site-packages du virtualenv pourrait fonctionner, ce qui est facilement scriptable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top