Membuat dan Mengelola Virtual Environment di Python
Kenapa Saya Belajar Ini
Beberapa kali saya pindah perangkat atau meng-clone project python lama, dan sering dibuat repot oleh library yang tidak cocok versinya. Kadang jalan, kadang error tanpa alasan yang jelas.
Dari situ saya belajar bahwa ada cara yang lebih rapi untuk memisahkan dependensi antar project python. Akhirnya belajar tentang virtual environment (venv), biar setiap project punya “dunianya sendiri”.
Apa yang Saya Pelajari
Setelah membuat folder project, langkah selanjutnya cukup masuk ke direktori tersebut, baik lewat VS Code atau lewat Command Prompt. Dari sana, proses membuat virtual environment cukup menjalankan perintah:
python -m venv venv
Nama venv di belakang itu bisa diganti sesuai keinginan, tapi saya pribadi tetap pakai venv biar mudah diingat. Setelah perintah itu dijalankan, otomatis muncul folder baru dengan nama yang sama.
Untuk mengaktifkannya:
venv\Scripts\activate
Kalau di VS Code tiba-tiba tidak mau aktif, kemungkinan terminal-nya memakai PowerShell. Solusinya ganti ke Command Prompt. Setelah aktif, prompt akan berubah, misalnya:
(venv) C:\project>
Setelah itu tinggal install library menggunakan pip seperti biasa.
Agar project bisa dibagikan atau dijalankan di perangkat lain tanpa membawa folder venv yang ukurannya besar, kita bisa membuat daftar dependensi:
pip freeze > requirements.txt
Di perangkat lain, cukup jalankan:
pip install -r requirements.txt
Dengan begitu, semua library yang dibutuhkan akan ter-install sesuai versi yang digunakan di project asli.
Untuk keluar dari venv di terminal-nya ketik saja perintah berikut:
deactivate
Insight
Virtual environment membuat setiap project python berjalan di lingkungan yang terisolasi. Dependensi tidak saling mengganggu, dan versi library bisa dikontrol dengan rapi.
Selain itu, membagikan project jadi lebih ringan karena kita hanya perlu mengirimkan struktur folder dan file requirements.txt, bukan seluruh folder venv yang biasanya cukup besar.
Hal kecil seperti ini ternyata sangat membantu menjaga project tetap bersih dan mudah di-maintain, terutama ketika jumlah project Python makin banyak.
