Thursday, November 16, 2017

Tutorial python virtualenv

Bahasa pemrograman python sedang boooming, menurut IEEE programming language rank, python menempati urutan pertama. Setelah membuat tutorial singkat, learning python: the hardway, saya jarang membukanya dan menggunakannya. Untuk memaksa hal tersebut, saya membuat tutorial lagi, yang saya sadur dari software carpentry. Kali ini saya akan mencatat tentang penggunaan `virtualenv`, module python yang digunakan untuk mengisolasi environment, seperti menggunakan modul versi tertentu dan setup tertentu. Hal ini sangat penting karena beberapa kode yang dibuat hanya berjalan pada versi yang sama, bukan versi di atasnya atau di bawahnya, misalnya deep learning untuk klasifikasi genre musik ini. Virtualenv ini sangat mirip dengan `modulefile` pada HPC (high performance computing).

Instalasi
Ada dua cara yang saya rekomendasikan untuk menginstall virtualenv, cara pertama dengan apt(-get), cara kedua dengan pip. Saya lebih merekomendasikan cara kedua.

Jika memakai cara pertama (apt untuk ubuntu, apt-get untuk debian-based)
sudo apt install virtualenv

Cara kedua (lebih direkomendasikan),
sudo -H pip install virtualenv

Pip adalah `python installing packages`, karena kita sedang menggunakan python, karena itulah saya lebih merekomendasikan cara kedua. Argument -H artinya agar installasi di-set ke user dari Home (alaiu, as long as i understood). Kemudian untuk mengecek apakah sudah terinstal, seperti biasa, cek dengan argumen --version.
virtualenv --version

Membuat virtualev
Untuk membuat python virtualennv, caranya cukup mudah sbb:
virtualenv nama_virtual_python
source nama_virtual_python/bin/activate

Denga perintah itu virtualenv dengan nama `nama_vitual_python` telah dibuat dan diaktivas dengan perintah berikutnya yakni `source activate`. Setelah perintah itu dijalankan, maka kita sudah berada pada python virtual environment dimana kita bisa menginstall dan menggunakan modul/package python dengan versi selain versi modul yang terinstall di komputer. Contohnya sebagai berikut,
pip install tensorflow==1.0.0 sugartensor==1.0.0.2 pandas>=0.19.2 librosa==0.5.0 sckits.audiolab==0.11.0 numpy==1.13.3

Menon-aktifkan virtualenv

Sebagai kebalikan perintah `source activate`, kita bisa menggunakan perintah `deactivate` saja tanpa argumen untuk menon-aktifkan virtualenv python dan kembali ke environment python secara umum di PC kita.
deactivate

Integrasi dengan Jupyter notebook

Dengan Jupyter notebook, pemorgraman python menjadi lebih interaktif seperti Matlab. Kita bisa melihat variabel, mengganti parameter, dan megedit baris tertentu saja tanpa menjalankan keseluruhan program. Seperti halnya alasan kenapa kita menggunakan virtualenv: yakni kita hanya ingin menggunakan paket python versi tertentu saja pada project/direktori tertentu saja, begitu juga pada Jupyter notebook. Alih-alih menggunakan python2 atau python3 sebagai kernel jupyter, kita bisa membuat custom kernel python sendiri dengan menginstall ipykernel dalam virtualenv.

Langkah-langkahnya adalah sebagai berikut,
$ source nama_virtual_python/bin/activate
(nama_virtual_python)$ pip2 install ipykernel
(nama_virtual_python)$ ipython kernel install --user --name=nama_virtual_python
installed kernelspec nama_virtual_python in /home/user/.local/share/jupyter/kernels/nama_virtual_python
(nama_virtual_python)$ jupyter-notebook

Perhatikan bahwa string sebelum tanda dolar $ bukan merupakan perintah. Singkatnya, baris kedua diatas akan menginstall paket ipykernel pada environment python saat ini, kemudian baris ketiga mengaktifkan paket (kernel) tersebut pada jupyter. Terakhir kita buka jupyter, dan disitu terdapat kernel baru: nama_virtual_python. Selamat mencoba!

Update:

Pada Ubuntu 16.04, by default perintah `pip` akan mengeksekusi pip3 (python3), bukan pip2 (python2), jika virtualenv sudah terinstall dan ada ketika di jalankan keluar "using base prefix '/usr' ", maka tambahkan opsi `--python=python2" saat menjakankan virtualenv sebagai berikut:
virtualenv --python=python2 nama_virtual_python

Update 2018/11/12
Untuk python3, gunakan venv daripada virtualenv. Lebih lengkapnya silahkan ikuti panduannya disini.

TL;DR untuk python 3:
1. python3 -m venv .env
2. source .env/bin/activate
3. pip3 install namapaket

Update untuk python3.6 (2020/07/31)
1. sudo apt install python3.6-venv
2. ... (step 1-3 di atas)

Referensi:
  1. http://www.pythonforbeginners.com/basics/how-to-use-python-virtualenv
  2. https://anbasile.github.io/programming/2017/06/25/jupyter-venv/
Related Posts Plugin for WordPress, Blogger...