Sudah sejak lama kita mengandalkan Virtualenv untuk melakukan manajemen library di Python. Dan semua itu sekarang akan segera berubah. Perkenalkan Pipenv, sebuah langkah baru dalam manajemen library di Python. Kalau rekan-rekan familiar dengan npm di Nodejs atau bundler di Ruby maka pipenv adalah tools yang serupa dengan itu di Python.
Kalau kita lihat dari namanya maka Pipenv ini adalah semacam gabungan dari perintah pip dan virtualenv ya. Memang seperti itu lah si Pipenv ini. Library yang satu ini mengabungkan pip dan virtualenv manajemen dalam satu perintah. Kita tidak perlu lagi memanggil perintah pip dan virtualenv secara terpisah.
Pipenv pun menggunakan sebuah format file tersendiri untuk konfigurasi environtmen nya, file itu bernama Pipfile. Setelah melakukan sedikit riset, ternyata tidak sulit menggabungkan pipenv ini dengan supervisord, sungguh nilai tambah yang besar ya. Kuy kita segera mencobanya di Ubuntu 18.04
Persiapan
Pada eksperimen ini kita akan berkerja berdasarkan distro Ubuntu 18.04. Apabila rekan baru saja menginstall Ubuntu tersebut dan belum melakukan perubahan apa-apa maka ada kemungkinan beberap library Python yang dibutuhkan belum tersedia. Untuk itu kita perlu melakukan beberapa persiapan repo seperti berikut ini :
-
- Edit file /etc/apt/source.list kemudian cari baris
deb http://archive.ubuntu.com/ubuntu bionic main
ganti menjadi
deb http://archive.ubuntu.com/ubuntu bionic main multiverse universe
- Update repository index database dengan perintah berikut
sudo apt-get update
- Edit file /etc/apt/source.list kemudian cari baris
Baik, sekarang kita sudah siap untuk lanjut ke tahap berikutnya. Pada tahap ini kita akan melakukan installasi pip, ya ternyata pipenv tetap butuh pip untuk dapat berjalan. Installah pip dengan perintah berikut ini
sudo apt-get install python-pip python3-distutils
Berikutnya setelah pip terinstall dengan baik, saatnya kita meninstall Pipenv dengan perintah
sudo pip install pipenv
Apabila proses installasi berjalan dengan baik, berikut nya kita bisa mengecek versi dari Pipenv yang barusan diinstall dengan perintah
pipenv --version
Kita sudah terlanjur menggunakan virtualenvwrapper untuk proyek-proyek kita?, tidak masalah kok. Pipenv akan otomatis membaca konfigurasi yang sudah dilakukan oleh virtualenvwrapper. Apabila kita sudah melakukan setup virtualenvwrapper maka setiap virtualenv akan diletakan di ~/.virtualenvs, namun apabila belum env akan diletakan di ~/.local/share/virtualenvs.
Penggunaan (Developmen)
Pada bagian ini saya akan mendemonstrasikan penggunaan pipenv dalam developmen django + gunicorn + supervisord. Let’s go …
Langkah pertama cari tempat yang nyaman untuk meletakan proyek kita , misal di ~/Project dengan perintah
mkdir ~/Projects/ayam cd ~/Projects/ayam
Selanjutnya kita perlu melakukan inisiasi pipenv untuk proyek ini. Pada proyek ini kita akan menggunakan python 3 ya. Inisiasi dengan perintah berikut
pipenv --three
Kemudian kita bisa langsung menginstall django dengan perintah
pipenv install django
Nah sekarang saatnya kita membuat proyek django dengan peritah
pipenv run django-admin startproject ayam .
Berikutnya kita test installasi django dengan perintah
pipenv run ./manage.py migrate pipenv run ./manage.py runserver
Penggunaan (Deployment)
Setelah kita berhasil melakukan developmen django, tiba saatnya untuk memasang aplikasi kita. Deploymen ini akan dibantu dengan Gunicorn dan Supevisord. Langkah-langkah nya sebagai berikut:
-
- Install library gunicorn dengan perintah
pipenv install gunicorn
- Install supervisord dengan perintah
sudo apt-get install supervisor
- Buat file konfigurasi di /etc/supervisor/conf.d/ayam.conf yang isinya sebagai berikut
[program:ayam] user = coba directory = /home/coba/Projects/ayam/ command = /usr/local/bin/pipenv run gunicorn ayam.wsgi -b 0.0.0.0:9000
. Sebagai catatan ya, silahkan sesuaikan nama user dan direktori tempat project berada.
- Lalu perintahkan supervisord untuk membaca konfigurasi yang baru kita buat dengan perintah
sudo supervisorctl reread
- Setelah berhasil membaca konfigurasi baru, perintahkan supervisord untuk menjalankan nya dengan perintah
sudo supervisorctl update
- Test deploymen dengan membuka http://localhost:9000/
- Install library gunicorn dengan perintah
Selamat mencoba