432 votes

Python : Déterminer si en cours d’exécution à l’intérieur de virtualenv

Est-il possible de déterminer si le script en cours s’exécute à l’intérieur d’un environnement virtualenv ?

305voto

Carl Meyer Points 30736

Autant que je sache le moyen le plus fiable pour vérifier cela (et la façon dont est utilisée en interne chez virtualenv en pip) consiste à vérifier l’existence de sys.real_prefix :

À l’intérieur d’un virtualenv, sys.prefix pointe sur le répertoire virtualenv et sys.real_prefix au préfixe « réel » du système Python (souvent/usr ou/usr/local ou quelque chose comme).

En dehors d’un virtualenv, sys.real_prefix ne devrait pas exister.

27voto

chronossc Points 39

Selon le pep virtualenv à http://www.python.org/dev/peps/pep-0405/#specification vous pouvez utiliser sys.prefix à la place os.environ['VIRTUAL_ENV'].

le sys.real_prefix n’existe pas dans mon virtualenv, même avec sys.base_prefix.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X