El uso de la deactivate
función proporcionada por el script de venv activate
requiere que confíe en que la función de desactivación esté codificada correctamente para restablecer limpiamente todas las variables de entorno a su estado anterior, teniendo en cuenta no solo la activación original , sino también cualquier interruptor , configuración o otro trabajo puedas haber hecho mientras tanto.
Probablemente esté bien, pero introduce un nuevo riesgo distinto de cero de dejar su entorno modificado después.
Sin embargo, técnicamente no es posible que un proceso altere directamente las variables de entorno de su padre, por lo que podemos usar un sub-shell separado para estar absolutamente seguros de que nuestros venv
s no dejan ningún cambio residual:
Activar:
$ bash --init-file PythonVenv/bin/activate
- Esto inicia un nuevo shell alrededor del
venv
. Su bash
caparazón original permanece sin modificaciones.
Para desactivar:
$ exit
O [CTRL]
+[D]
- Esto sale de todo el shell en el que se
venv
encuentra y lo regresa al shell original antes de que el script de activación realizara cambios en el entorno.
Ejemplo:
[user@computer ~]$ echo $VIRTUAL_ENV
No virtualenv!
[user@computer ~]$ bash --init-file PythonVenv/bin/activate
(PythonVenv) [user@computer ~]$ echo $VIRTUAL_ENV
/home/user/PythonVenv
(PythonVenv) [user@computer ~]$ exit
exit
[user@computer ~]$ echo $VIRTUAL_ENV
No virtualenv!