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:
cd /tmp
mkdir latihan-venv && cd latihan-venv
python3 -m venv .venv
ls .venvOutput yang Dihasilkan:
bin
include
lib
lib64
pyvenv.cfgPerintah python3 -m venv .venv menjalankan modul venv, lalu menciptakan folder .venv berisi:
- bin/ — salinan interpreter Python beserta skrip aktivasi (
activate) dan pintasanpip. - lib/ — folder site-packages milik environment ini; hasil setiap
pip installberikutnya diletakkan di sini. - 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:
source .venv/bin/activate
which python
python --versionOutput yang Dihasilkan:
/tmp/latihan-venv/.venv/bin/python
Python 3.12.15which 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 shell | Perintah 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.
pip listOutput yang Dihasilkan:
Package Version
------- -------
pip 25.0.1NumPy 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:
# notest
python -m pip install numpyDetail cara kerja pip dibahas pada Chapter Menginstal NumPy.
Keluar dari Environment #
deactivateSetelah 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.