Pada satu instalasi Python, semua paket pihak ketiga berbagi satu folder site-packages yang sama. Bila proyek A membutuhkan numpy versi lama sementara proyek B membutuhkan versi terbaru, keduanya bertabrakan bila dipaksa tinggal di tempat yang sama. virtual environment menyelesaikan persoalan ini: setiap proyek mendapat salinan interpreter beserta folder paket miliknya sendiri, terpisah dari proyek lain maupun dari Python bawaan sistem.

Membuat Environment dengan venv #

Konvensi yang dipakai course ini: satu folder proyek berisi satu folder .venv (diawali titik). Untuk latihan, kita buat folder sementara di /tmp agar percobaan tidak meninggalkan jejak di folder kerja:

bash
cd /tmp
mkdir latihan-venv && cd latihan-venv
python3 -m venv .venv
ls .venv

Output yang Dihasilkan:

text
bin
include
lib
lib64
pyvenv.cfg

Perintah python3 -m venv .venv menjalankan modul venv, lalu menciptakan folder .venv berisi:

  1. bin/ — salinan interpreter Python beserta skrip aktivasi (activate) dan pintasan pip.
  2. lib/ — folder site-packages milik environment ini; hasil setiap pip install berikutnya diletakkan di sini.
  3. pyvenv.cfg — penanda bahwa folder ini adalah virtual environment, termasuk lokasi interpreter dasarnya.

Di macOS folder lib64 tidak dibuat; perbedaan itu normal dan tidak mempengaruhi apa pun.

Aktivasi Environment #

Menciptakan .venv saja tidak mengubah perilaku terminal; aktivasilah yang membuat shell memakai interpreter dari environment tersebut:

bash
source .venv/bin/activate
which python
python --version

Output yang Dihasilkan:

text
/tmp/latihan-venv/.venv/bin/python
Python 3.12.15

which python kini menunjuk ke dalam .venv, bukan lagi ke Python sistem. Di Linux/macOS, perintah python dan python3 sama-sama menunjuk interpreter .venv saat environment aktif; di Windows, perintah yang tersedia adalah python. Pada sesi interaktif, prompt shell juga berubah diawali (.venv) sebagai penanda environment aktif. Path pada output mengikuti lokasi folder proyek; di mesin pembaca, path-nya menyesuaikan.

Perintah aktivasi berbeda menurut sistem dan shell:

Sistem dan shellPerintah aktivasi
Linux / macOS (bash, zsh)source .venv/bin/activate
Windows (CMD).venv\Scripts\activate.bat
Windows (PowerShell).venv\Scripts\Activate.ps1

Bila PowerShell menolak menjalankan skrip karena execution policy, jalankan sekali perintah Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser, lalu ulangi aktivasi.

pip Milik Environment #

Setelah aktif, perintah pip otomatis berasal dari environment tersebut. Bukti isolasinya: environment baru berisi sangat sedikit paket.

bash
pip list

Output yang Dihasilkan:

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

NumPy yang terpasang di Python dasar tidak muncul di daftar ini — environment baru memulai dari kosong dan tidak mewarisi paket lama. Memasang paket ke environment aktif dilakukan seperti biasa; bentuk python -m pip menjamin pip berasal dari interpreter yang sedang aktif:

bash
# notest
python -m pip install numpy

Detail cara kerja pip dibahas pada Chapter Menginstal NumPy.

Keluar dari Environment #

bash
deactivate

Setelah deactivate, which python kembali menunjuk interpreter sistem, dan awalan (.venv) pada prompt tidak lagi tampil. Virtual environment yang tidak dipakai lagi cukup dihapus dengan menghapus folder .venv-nya; tidak ada proses uninstall tersendiri.