Virtual Environment pada Python

Para developer python pasti sudah familiar dengan virtual environment yang sering digunakan pada saat mengerjakan project dengan python. Virtual environment adalah sebuah kakas yang digunakan untuk membuat sebuah environment yang terisolasi dari dunia luar. Sehingga, modul python apapun yang diinstall tidak mempengaruhi environment global, dan yang terpenting, project lainnya. Ada beberapa kakas untuk membuat virtual environment pada python, di antaranya adalah virtualenv dan miniconda. EDIT: Bapak Ismail Sunni menambahkan salah satu kakas virtual environment lain yaitu virtualenvwrapper. Yang satu ini berjalan di atas virtualenv, agar lebih rapi.

Saya lebih sering memakai yang pertama, terutama untuk project pribadi. Jadi, kali ini saya akan membagikan pengalaman saya menggunakan virtualenv selama ini.

Instalasi virtualenv pada komputer dapat dilakukan dengan pip. Tambahkan perintah sudo jika perlu. Ingat, hal ini hanya bisa dilakukan jika komputer kita sudah terinstall python dan pip. Biasanya di sistem operasi yang berbasis UNIX, python sudah terinstall dengan sendirinya. Namun berbeda dengan Windows. Saya akan menulis bagaimana menginstall dan mengeset python di Windows di lain kesempatan. Anyway, kita dapat menginstall virtualenv dengan perintah berikut ini.

[sudo] pip install virtualenv

Setelah virtualenv terinstall, kita dapat membuat sebuah virtual environment untuk digunakan dalam project kita. Untuk membuat virtual environment dengan python yang aktif, gunakan:

virtualenv path/to/virtualenv/project

Gantilah path/to/virtualenv/project dengan path yang diinginkan untuk virtualenv. Tidak ada aturan pasti untuk path ini, tetapi saya memiliki rule of thumb yang membuat kita nyaman menggunakan virtualenv ini.

  1. Buatlah virtualenv di luar project yang akan dibuat. Hal ini dilakukan supaya kode yang kita buat tidak terkotori virtualenv, serta memudahkan ketika memasukkan ke repository online semacam github.
  2. Kumpulkan virtualenv di dalam satu folder. Misalkan kita memiliki empat project dengan virtualenv yang berbeda-beda, satukanlah kesemuanya tersebut di satu folder. Hal ini dilakukan agar kita tidak pusing mencari virtualenv yang telah kita buat. Sebagai contoh, saya mengumpulkan virtualenv di dalam D:\python_projects\virtualenv.
  3. Namailah virtualenv kita sesuai dengan nama project yang kita buat. Ini juga dilakukan agar kita tidak pusing mencari-cari virtualenv yang tepat.

Ini adalah contoh hasil virtualenv yang saya gunakan sekarang.

Virtualenv
Beberapa virtualenv yang saya buat

Apa sebenarnya virtualenv itu? Mudahnya, python akan membuat sebuah instalasi python lagi pada folder yang telah ditentukan tersebut. Di folder virtualenv yang baru terbentuk, kita dapat melihat folder lib dan bin (pada Linux) atau Lib dan Scripts (pada Windows). Folder lib (Lib pada Windows) berisi instalasi library python, baik library standar atau yang kita install kemudian. Sementara folder bin (Scripts pada Windows) berisi file-file executable yang akan dijadikan $PATH ketika virtualenv diaktifkan.

Untuk mengaktifkan virtualenv, kita menjalankan script activate yang ada di dalam folder virtualenv yang telah kita buat. Hal ini dapat dicapai dengan melakukan perintah sebagai berikut:

source path/to/virtualenv/project/bin/activate

pada Linux, atau:

path\to\virtualenv\project\Scripts\activate

pada Windows.

Saat virtualenv aktif, kita dapat melihat pada command-line kita dengan indikator di sebelah kiri path. Contohnya seperti gambar berikut:

virtualenvactivate
Mengaktifkan virtualenv try_test

Setelah kita mengaktifkan virtualenv, maka kita bisa melakukan sesukanya dengan environment python kita. (yaaay!)

Jika kita sudah selesai dengan pekerjaan kita dan ingin kembali ke dunia nyata, kita lakukan perintah ini:

deactivate

Dan kita akan keluar dari virtualenv dan menggunakan environment global di komputer kita.

Begitulah kira-kira sekilas mengenai virtual environment secara umum dan virtualenv khususnya, semoga bermanfaat.

Happy Pythoning!

3 tanggapan untuk “Virtual Environment pada Python

Tinggalkan komentar