Jak można ustalić, czy bieżący skrypt działa w środowisku virtualenv?

Czy można ustalić, czy bieżący skrypt działa w środowisku virtualenv?

1 odpowiedź

AFAIK jest najbardziej niezawodnym sposobem (i sposobem, który jest używany wewnętrznie w virtualenv i pip) na sprawdzenie istnienia sys.real_prefix:

import sys

if hasattr(sys, 'real_prefix'):
    #...

Wewnątrz virtualenv, sys.prefix wskazuje katalog virtualenv, a sys.real_prefix wskazuje na „prawdziwy” prefiks systemowego Pythona (często / usr lub / usr / local lub jakiś inny).

Poza virtualenv, sys.real_prefix nie powinien istnieć.

Korzystanie ze zmiennej środowiskowej VIRTUAL_ENV nie jest niezawodne. Jest ustawiony przez skrypt powłoki virtualenv Activation, ale virtualenv może być używany bez aktywacji poprzez bezpośrednie uruchomienie pliku wykonywalnego z katalogu bin / (lub Scripts) virtualenv, w którym to przypadku $ VIRTUAL_ENV nie zostanie ustawiony.

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.