Apa itu virtual environtment pada python? Virtual Environtment adalah tools untuk mengenkapsulasi serta manajemen package atau library pada proyek kalian.

Bingung? iya sih sama, gampangnya gini, kita membuat ruang privasi kecil untuk proyek kita, agar nantinya library yang kita install hanya dapat digunakan untuk proyek tersebut.


Kenapa Pakai Virtual Environtment?


“Kan, python serta library bisa kita instal secara global kak? Supaya bisa digunakan untuk proyek mana saja”

Jika pakai virtual environtment, kita dapat mencegah adanya issue dependency yang terjadi saat ada update atau perbedaan versi.

Contoh, kita buat proyek aplikasi bakso pakai python versi 3.8 dan juga library numpy versi 3.4.

Ternyata kita diberi proyek lain (aplikasi mie ayam) dengan kebutuhan versi python yang lebih tinggi. Otomatis harus update python ke 3.9 dan library numpy juga butuh update kan.

“Tanpa Virtual Environtment”
Tanpa Virtual Environtment

Nah, setelah diupdate ternyata di aplikasi bakso terdapat beberapa fungsi yang error karena dependencies nya banyak yang berubah karena kita update tadi.

“Tanpa Virtual Environtment”
Dengan Virtual Environtment

Maka dari itu kita butuh virtual environtment agar aplikasi bakso dapat berjalan dengan versi yang ia butuhkan.

Dengan virtual environtment, kita juga bisa menginstall kumpulan library yang kita butuhkan untuk proyek aplikasi, tanpa harus mengganggu proyek aplikasi yang lain. Seperti contoh dibawah ini.

  • library pada virtual environtment untuk proyek aplikasi makan bakso.

    • python 3.8
    • numpy versi 3.4
    • opencv versi 3.3
    • num2word versi 1.1.
  • library pada virtual environtment untuk proyek aplikasi makan mie ayam.

    • python 3.9
    • numpy versi 3.5
    • keras versi 4.1
    • tensorflow versi 4

Nah, gimana udah ada bayangan? itulah kenapa anbi sarankan buat virtual environtment dalam memulai sebuah proyek aplikasi.


Installasi Virtual Environtment


Penting : Jika kalian menggunakan python 3.3 atau yang lebih baru, modul virtual environtment (venv) sudah otomatis terinstall pada python standard library, sehingga kalian tidak perlu menginstall lagi.

Untuk yang belum punya library-nya, mari sekarang kita mulai installasi virtual environtment. Gampang kok installasinya, cuman buka command prompt atau terminal kalian lalu install pakai PIP.

Untuk kalian yang pakai Windows :

py -m pip install --user virtualenv

Untuk kalian yang pakai MacOS dan Linux :

python3 -m pip install --user virtualenv

Membuat Virtual Environtment


Cara membuat virtual environment sangatlah mudah, pertama pilih folder aplikasi yang ingin kita buat virtual environtment. Lalu, buka terminal atau cmd dan arahkan ke folder yang tersebut,

“Contoh Proyek”
Contoh Lokasi Proyekku

Lalu untuk commandnya

Untuk kalian yang pakai Windows :

py -m venv ini-env

Untuk kalian yang pakai MacOS dan Linux :

python3 -m venv ini-env
  • venv adalah command untuk membuat virtual environtment
  • ini-env adalah nama virtual environtment

“Folder Virtual Environtment!"
Folder Virtual Environtment!

Nah, jika kita lihat folder dengan nama ini-env akan dibuat secara otomatis. Folder ini-env inilah yang nantinya akan menampung library - library yang kita install.

“Isi Folder ini-env”
Isi Folder ini-env


Menggunakan Virtual Environtment


Jika sudah sukses membuat virtual environtment sekarang saatnya untuk menggunakannya. Caranya mengaktifkan virtual environtment seperti ini :

  • Buka terminal atau cmd, lalu arahkan ke folder aplikasi kita.

  • Ketik perintah dibawah :

    • Jika pakai Windows
      .\ini-env\Scripts\activate
      
    • Jika pakai Linux atau MacOS
      source ini-env/bin/activate
      

    “Here you go!"
    Here you go!

    ini-env adalah nama environtment yang kita buat tadi

Jika session kalian udah ada kayak gini :

“Selamat anda berhasil masuk di Virtual Environtment”
Selamat anda berhasil masuk di Virtual Environtment

Berarti tandanya kalian sudah berhasil mengaktifkan ruang virtual kalian. Untuk mengkonfirmasi kalian bisa melihat letak python yang digunakan saat ini :

  • coba cek pakai windows :

    where python
    
  • coba cek pakai linux dan macOS :

    which python
    

D:\ExperimentCode\python\virtual-project\ini-env\Scripts\python.exe

Nah, python yang kita gunakan pada cmd saat ini adalah python yang berada pada direktori virtual environtment.

Sehingga kalian dapat menginstall library dan package apa saja tanpa mengganggu daftar library pada python global.

. . .

Jika ingin keluar dari virtual environtment sangatlah mudah. Kalian bisa tutup terminal atau cmd kalian, atau menulis command script dibawah :

deactivate

Virtual vs Global Environtment


Mau kita bandingkan? ayo! Sekarang kita bandingkan aplikasi kita yang berada pada virtual env dan global env.

Disini anbi bakal buat sebuah proyek aplikasi baru yang menggunakan framework Django.

Nah, karena Anbi gamau proyek anbi nanti error gara - gara perbedaan versi library atau dependencies oleh proyek lain. Maka anbi putuskan buat virtual environtment saat menginstall Django.

“Buat venv dan install django”
Buat venv dan install django

Nah, sekarang kita coba lihat list package library yang terinstall pada virtual environtment ini menggunakan pip list:

“List Library Pada Virtual Environtment”
List Library Pada Virtual Environtment

Django berhasil terinstall di virtual environtment yang kita buat tadi. Dan kita juga bisa menggunakan beberapa command line dari Django seperti django-admin help.

“Hasil Command Line Django”
Hasil Command Line Django

Sekarang mari kita keluar dari virtual environtment dan pindah ke global environtment. Dan coba kita ketik perintah yang sama django-admin help.

D:\ExperimentCode\python\djangoku>django-admin help
'django-admin' is not recognized as an internal or external command,
operable program or batch file.

Lah, kenapa tidak dikenali didalam global environtment? Mari kita lihat list package library yang terinstall pada global environtment.

“List Library Pada Global Environtment”
List Library Pada Global Environtment

Ternyata tidak ada satu pun package library yang bernama django, yang berarti kita tidak bisa menggunakan command line dari django.

Dari contoh diatas dapat disimpulkan, menggunakan virtual environtment memungkinkan kita untuk mengisolasi suatu paket library hanya untuk aplikasi yang sedang kita buat.

Sehingga aplikasi kita tidak akan campur tangan ke aplikasi lain dan sebaliknya.

Ibarat virtual environtment adalah rumah dan aplikasi adalah pemilik rumah tersebut.

Kita tidak mau kan tetangga kita tiba - tiba mengubah furnitur rumah kita sesuai selera mereka.

. . .

Yaudah gitu aja, nanti lanjut lagi.