Panduan ini untuk siapa
- Pemula yang sudah memasang Python dan ingin setup project yang bersih serta andal
- Pembelajar yang bingung karena konflik package antar project Python
- Developer yang ingin environment reproducible sebelum membangun aplikasi nyata
Apa yang akan Anda pelajari
- Mengapa virtual environment penting untuk isolasi dependency dan reproducibility
- Cara membuat, mengaktifkan, dan menonaktifkan environment
venvdi Windows, Linux, dan macOS - Cara memasang package ke environment yang benar menggunakan
python -m pip - Cara freeze dan restore dependency untuk kolaborasi tim
- Kesalahan virtual environment yang umum dan perbaikannya
Mengapa topik ini penting
Tanpa virtual environment, package Python dari satu project bisa merusak project lain. Ini sering terjadi saat Anda meng-upgrade library secara global, lalu project lama tiba-tiba berhenti berjalan. Pemula sering mengalaminya dan mengira ada kesalahan coding, padahal masalah utamanya ada pada manajemen environment.
Virtual environment menyelesaikan masalah itu dengan mengisolasi dependency tiap project. Ini juga membuat project reproducible: Anda bisa membagikan daftar dependency dan membuat ulang setup yang sama di mesin lain. Ini adalah workflow profesional inti di Python.
Konsep inti
Isolasi dependency
Isolasi dependency berarti tiap project punya kumpulan package dan versi sendiri. System Python Anda tetap bersih, sementara setiap project bisa aman memakai versi library berbeda.
Contoh skenario:
- Project A butuh
requests==2.31.0 - Project B butuh
requests==2.25.1
Tanpa virtual environment, kebutuhan ini bentrok. Dengan virtual environment, keduanya bisa berjalan mandiri.
Apa yang dibuat venv dan cara kerja aktivasi
venv adalah tool environment bawaan Python. Saat Anda membuatnya, Python menghasilkan folder berisi:
- Interpreter lokal
piplokal- Direktori site-packages lokal
Aktivasi mengubah konteks shell sehingga python dan pip mengarah ke environment lokal tersebut.
Buat environment bernama .venv:
python -m venv .venv
Setelah aktivasi, instalasi package akan terisolasi ke project ini.
Reproducibility dengan requirements file
Reproducibility berarti developer lain (atau diri Anda di masa depan) bisa membuat ulang environment yang sama.
Dua command inti:
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt
Pola ini sederhana dan kuat untuk kolaborasi, pipeline CI, serta persiapan deployment.
Perbandingan cepat: venv vs virtualenv vs Conda-style envs
| Tool | Included with Python | Speed | Typical use case | |—|—|—|—| | venv | Yes | Good | Pilihan default untuk kebanyakan project | | virtualenv | No (install separately) | Often very fast | Workflow lama dan opsi lanjutan | | Conda env | No (Conda ecosystem) | Good | Stack data science dengan binary non-Python |
Jika Anda baru mulai, gunakan venv terlebih dahulu. Pindah ke tool lain hanya saat constraint project memang menuntut.
Panduan langkah demi langkah
Langkah 1 — Buat folder project dan virtual environment
Buat lalu masuk ke direktori project terlebih dahulu.
mkdir my-python-project
cd my-python-project
python -m venv .venv
Jika python tidak bekerja, coba python3 (Linux/macOS) atau py -m venv .venv (Windows).
Langkah 2 — Aktifkan environment sesuai OS
Gunakan command aktivasi yang tepat untuk shell Anda.
Windows (PowerShell):
.venv\Scripts\Activate.ps1
Windows (Command Prompt):
.venv\Scripts\activate.bat
Linux/macOS (bash/zsh):
source .venv/bin/activate
Anda akan melihat (.venv) pada prompt setelah aktivasi.
Langkah 3 — Instal package dan verifikasi isolasi
Pasang satu package dan cek lokasi instalasinya.
python -m pip install requests
python -m pip show requests
Cek path interpreter:
python -c "import sys; print(sys.executable)"
Path yang tercetak harus mengarah ke dalam .venv, menandakan isolasi aktif.
Contoh praktis
Contoh 1 — Memulai workflow project yang bersih
Gunakan urutan minimal ini setiap kali membuat project baru:
mkdir weather-app
cd weather-app
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install requests
python -m pip freeze > requirements.txt
Expected output (sample snippets):
Successfully installed requests-2.xx.x
requirements.txt (sample):
requests==2.xx.x
charset-normalizer==...
idna==...
urllib3==...
certifi==...
Catatan: di Windows PowerShell, ganti command aktivasi dengan .venv\Scripts\Activate.ps1.
Contoh 2 — Deactivate dan reactivate dengan benar
Saat selesai coding, keluar dari environment:
deactivate
Nanti, kembali ke project dan aktifkan lagi:
cd weather-app
source .venv/bin/activate
python -m pip list
Expected result:
- Prompt menampilkan
(.venv)lagi - Package yang terinstal pada project itu langsung tersedia
Ini adalah rutinitas harian yang akan Anda ulang di banyak project Python.
Kesalahan umum dan cara menghindarinya
- Menginstal package sebelum aktivasi -> Aktivasi dulu, lalu jalankan
python -m pip install .... - Tidak sengaja memakai
pipglobal -> Utamakanpython -m pipagar pip cocok dengan interpreter aktif. - Meng-commit
.venvke Git -> Tambahkan.venv/ke.gitignore; commitrequirements.txtsebagai gantinya. - Lupa interpreter mana yang dipakai VS Code -> Pilih interpreter
.venvdi editor Anda untuk setiap project. - Kena error execution policy PowerShell -> Gunakan
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned(jika diizinkan) atau aktivasi lewat Command Prompt.
Latihan cepat
- Buat folder bernama
practice-venv, lalu buat dan aktifkan.venvdi dalamnya. - Instal
requests, lalu verifikasi denganpython -m pip show requests. - Freeze dependency ke
requirements.txt, deactivate, reactivate, lalu jalankanpython -m pip list.
Ringkasan utama
- Virtual environment mencegah konflik package antar project.
venvsudah bawaan Python dan sebaiknya jadi tool awal default Anda.- Aktivasi bergantung shell, tetapi workflow-nya sama di setiap OS.
python -m pipadalah pola instalasi package paling aman.requirements.txtmembantu Anda mereproduksi environment secara andal.
Langkah berikutnya
Lanjut ke [04. Pelajari Dasar-Dasar](./04-learn-the-basics-ID.md). Di panduan berikutnya, Anda akan membangun skill inti Python: sintaks, tipe data, conditional, loop, function, dan error handling.
No Comments