Est-il possible de déterminer si le script en cours s’exécute à l’intérieur d’un environnement virtualenv ?
Réponses
Trop de publicités?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.
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.