Використання deactivate
функції, що надається сценарієм venv, activate
вимагає довірити правильності кодування функції дезактивації, щоб чітко скинути всі змінні середовища назад до того, як вони були раніше - з урахуванням не тільки оригінальної активації , але й будь-яких комутаторів , конфігурації чи іншого робота, яку ви, можливо, зробили тим часом.
Це, мабуть, добре, але це вводить новий, ненульовий ризик залишати своє оточення зміненим згодом.
Однак технічно неможливо, щоб процес безпосередньо міняв змінні середовища його батьківського змісту, тому ми можемо використовувати окрему підкожу, щоб бути абсолютно впевненим, що наші venv
не залишають за собою жодних залишкових змін:
Щоб активувати:
$ bash --init-file PythonVenv/bin/activate
- Це запускає нову оболонку навколо
venv
. Ваша оригінальна bash
оболонка не змінюється.
Щоб вимкнути:
$ exit
АБО [CTRL]
+[D]
- Це закриває всю оболонку, в якій
venv
знаходиться, і повертає вас до початкової оболонки, перш ніж сценарій активації вніс будь-які зміни в оточення.
Приклад:
[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!