Dengan menggunakan deactivatefitur yang disediakan oleh activateskrip venv, Anda harus memercayai fungsi penonaktifan untuk dikodekan dengan benar untuk mengatur ulang semua variabel lingkungan secara bersih kembali seperti semula — dengan mempertimbangkan tidak hanya aktivasi asli , tetapi juga sakelar , konfigurasi , atau lainnya. pekerjaan yang mungkin telah Anda lakukan untuk sementara waktu.
Ini mungkin baik-baik saja, tetapi itu memperkenalkan risiko baru, tanpa nol meninggalkan lingkungan Anda dimodifikasi setelahnya.
Namun, secara teknis tidak mungkin bagi suatu proses untuk secara langsung mengubah variabel lingkungan dari induknya, sehingga kita dapat menggunakan sub-shell terpisah untuk benar-benar yakin bahwa kami venvtidak meninggalkan perubahan residual di belakang:
Mengaktifkan:
$ bash --init-file PythonVenv/bin/activate
- Ini memulai shell baru di sekitar
venv. Kulit asli Anda bashtetap tidak dimodifikasi.
Untuk menonaktifkan:
$ exitATAU [CTRL]+[D]
- Ini keluar dari seluruh shell yang
venvada, dan menjatuhkan Anda kembali ke shell asli dari sebelum script aktivasi membuat perubahan apa pun pada lingkungan.
Contoh:
[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!