Bayangkan dua proyek di satu komputer: proyek lama bergantung pada pandas 2.x, sedangkan Course ini memakai pandas 3.0.6. Memasang keduanya di lokasi Python yang sama membuat pip saling menimpa versi paket, dan pembaruan untuk satu proyek justru mengganggu proyek lainnya. Modul bawaan Python bernama venv menyelesaikan masalah tersebut dengan membuat lingkungan terisolasi untuk setiap proyek. Chapter ini memandu pembuatan, aktivasi, dan pemeriksaan virtual environment sebelum kita memasang pandas.

Mengapa Proyek Butuh Lingkungan Terpisah #

Sebuah virtual environment adalah folder khusus yang berisi interpreter Python sendiri beserta folder site-packages tersendiri. Paket yang kita pasang selama environment aktif hanya masuk ke folder tersebut, bukan ke instalasi Python global. Tabel berikut membandingkan keduanya:

AspekTanpa virtual environmentDengan virtual environment
Lokasi paketSatu site-packages global untuk semua proyeksite-packages khusus di dalam folder proyek
Versi paketSemua proyek terpaksa memakai satu versiSetiap proyek memegang versinya sendiri
Dampak pembaruanUpgrade satu paket dapat mengganggu proyek lainPerubahan terkurung di dalam .venv proyek
PembongkaranMenghapus paket lama berisiko menyisakan sisaMenghapus folder .venv membersihkan semuanya

Karena perilaku pandas berubah besar antar versi mayor, isolasi ini syarat agar contoh Course selalu berperilaku sama di komputer Anda.

Cara Kerja Modul venv #

Saat dijalankan, venv membuat folder baru yang berisi salinan atau symlink interpreter Python, berkas konfigurasi pyvenv.cfg, dan folder site-packages yang masih kosong. Ketika environment diaktifkan, shell menerima variabel VIRTUAL_ENV yang menunjuk ke folder tersebut, dan setiap pemanggilan python atau pip diarahkan ke dalamnya. Dari sisi Python, perubahan ini terlihat pada dua atribut modul sys: sys.prefix menunjuk ke lokasi environment aktif, sedangkan sys.base_prefix tetap menunjuk ke instalasi Python dasar. Kedua atribut inilah yang dipakai untuk membuktikan bahwa isolasi benar-benar bekerja.

Langkah 1: Membuat Virtual Environment #

Pilih (atau buat) folder proyek Anda, lalu buka terminal di folder tersebut. Buat environment bernama .venv dengan modul venv; di macOS dan Linux kita memanggilnya lewat python3:

bash
python3 -m venv .venv

Di Windows, gunakan Python launcher yang terpasang bersama installer:

bash Windows (Command Prompt)
py -m venv .venv

Perintah pembuatan selesai tanpa mencetak pesan apa pun; keberhasilannya ditandai oleh kemunculan folder .venv. Isi foldernya di Linux:

bash
ls .venv

Output yang Dihasilkan:

text
bin
include
lib
lib64
pyvenv.cfg

Folder bin menyimpan interpreter dan skrip aktivasi, lib (atau Lib di Windows) menampung site-packages, sedangkan pyvenv.cfg mencatat lokasi instalasi Python dasar pemilik environment ini. Isi folder pada macOS serupa; perbedaannya hanya nama folder yang tidak memakai angka 64.

Langkah 2: Mengaktifkan dan Menonaktifkan #

Environment baru masih pasif; shell kita belum mengarah ke dalamnya. Aktivasi dilakukan dengan menjalankan skrip yang cocok dengan shell Anda:

Shell / sistemPerintah aktivasi
bash atau zsh (macOS, Linux)source .venv/bin/activate
fish (macOS, Linux)source .venv/bin/activate.fish
PowerShell (Windows).venv\Scripts\Activate.ps1
cmd (Windows).venv\Scripts\activate.bat

Setelah aktivasi, nama environment muncul sebagai awalan prompt, misalnya (.venv) user@host:~/proyek$, dan semua pemanggilan python serta pip menunjuk ke .venv. Untuk keluar, jalankan deactivate; prompt kembali normal dan perintah python kembali ke Python global. Aktivasi hanya berlaku pada jendela terminal tempat perintah dijalankan, jadi jendela baru perlu mengulang aktivasi.

Langkah 3: Memastikan Virtual Environment Aktif #

Pemeriksaan pertama memanfaatkan pip: environment baru seharusnya nyaris kosong. Setelah mengaktifkan .venv, jalankan python3 -m pip list; hasilnya hanya berisi pip itu sendiri (versi pip dapat berbeda di komputer Anda):

bash
python3 -m pip list

Output yang Dihasilkan:

text
Package Version
------- -------
pip     25.0.1

Pemeriksaan kedua memakai skrip Python kecil yang membandingkan sys.prefix dengan sys.base_prefix, dua atribut yang dibahas di awal chapter ini:

python
import sys

print("Prefix saat ini :", sys.prefix)
print("Prefix dasar    :", sys.base_prefix)
print("Di dalam venv   :", sys.prefix != sys.base_prefix)

Output yang Dihasilkan:

text
Prefix saat ini : /home/z/.venv
Prefix dasar    : /home/z/.local/share/uv/python/cpython-3.12.15-linux-x86_64-gnu
Di dalam venv   : True

Output di atas diambil dari lingkungan penulisan Course, yang sendirinya berjalan di dalam virtual environment bernama .venv; pada komputer Anda, dua baris path menunjuk ke folder .venv proyek masing-masing. Interpretasinya mudah dibaca:

  1. Prefix saat ini: lokasi yang dipakai Python untuk mencari site-packages saat berjalan; ketika environment aktif, nilai ini menunjuk folder .venv.
  2. Prefix dasar: lokasi instalasi Python yang menjadi induk environment; nilai ini tidak berubah oleh aktivasi.
  3. Di dalam venv: bernilai True saat environment aktif; tanpa aktivasi, kedua prefix bernilai sama dan hasilnya False.

Dengan pip list yang kosong dan Di dalam venv: True, lingkungan kita sudah benar-benar terisolasi. Satu-satunya yang masih hilang adalah paket datanya sendiri: pada Chapter berikutnya kita memasang pandas dari halaman paket pandas di PyPI ke dalam environment ini.