Virtual Environment Python untuk Analis: venv, pip, dan requirements
TL;DR
Virtual environment adalah folder terpisah berisi Python dan library khusus untuk satu proyek, jadi library proyek A nggak saling menimpa dengan proyek B. Bikinnya pakai perintah bawaan python -m venv .venv, lalu diaktifkan dengan source .venv/bin/activate di macOS dan Linux atau .venv\Scripts\activate di Windows. Daftar library yang terpasang disimpan ke requirements.txt lewat pip freeze, dan dipasang ulang di komputer lain lewat pip install -r requirements.txt.
Virtual environment adalah folder terpisah yang nyimpen Python dan library khusus buat satu proyek.
Gunanya satu: bikin library proyek A nggak numpuk dan nimpa library proyek B.
Ini masalah yang sering nyerang analis data. Kamu install versi pandas baru buat proyek yang lagi jalan, terus notebook analisis bulan lalu tiba-tiba error. Nggak ada yang berubah di kode kamu, tapi hasilnya beda.
Bikin environment terpisah cuma butuh dua perintah. Di bawah ini caranya, plus alur kerja lengkap dari bikin sampai bagi ke rekan tim.
Kenapa analis data butuh virtual environment?
Karena Python cuma punya satu tempat penyimpanan library secara default. Waktu kamu jalankan pip install, paketnya masuk ke tempat yang sama buat semua proyek. Kalau proyek lama butuh pandas 1.5 dan proyek baru butuh pandas 2.2, satu di antaranya bakal rusak.
Tiga masalah nyata yang muncul kalau kamu nggak pakai environment terpisah:
- Kode yang dulu jalan berhenti jalan. Fungsi yang dihapus di versi baru bikin notebook lamamu error.
- Hasil analisis berubah tanpa peringatan. Perubahan perilaku default di library bisa geser angka hasil hitunganmu.
- Kode kamu jalan di laptopmu, error di laptop rekan. Nggak ada catatan versi library yang kamu pakai.
Gimana cara bikin virtual environment Python?
Pakai modul bawaan venv. Perintahnya python -m venv .venv, dijalankan dari dalam folder proyekmu. Modul ini sudah ikut di Python sejak versi 3.3, jadi kamu nggak perlu install apa pun dulu.
# 1. Masuk ke folder proyek
cd ~/proyek/analisis-toko-berkah
# 2. Bikin environment bernama .venv
python -m venv .venv
Setelah itu muncul folder .venv. Isinya salinan Python dan tempat kosong buat library. Nama .venv itu kesepakatan umum, editor kayak VS Code otomatis ngenalin nama itu.
Kalau perintah python nggak dikenali, coba python3. Di Windows, coba py -m venv .venv.
Gimana cara mengaktifkan virtual environment?
Perintah aktivasinya beda antar sistem operasi. Setelah aktif, nama environment muncul dalam kurung di depan baris terminal kamu.
# macOS dan Linux
source .venv/bin/activate
# Windows (Command Prompt)
.venv\Scripts\activate.bat
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
Tanda berhasil:
(.venv) bima@laptop:~/proyek/analisis-toko-berkah$
Buat keluar, ketik deactivate. Nggak perlu pindah folder.
Di PowerShell, kadang muncul penolakan soal execution policy. Jalankan Set-ExecutionPolicy -Scope CurrentUser RemoteSigned sekali, lalu ulangi aktivasinya. Detail lengkapnya ada di dokumentasi resmi modul venv.
Gimana cara install library di dalam environment?
Pastikan environment sudah aktif, lalu jalankan pip seperti biasa. Semua paket masuk ke folder .venv, bukan ke Python sistem.
python -m pip install --upgrade pip
python -m pip install pandas openpyxl matplotlib seaborn jupyter
Aku selalu pakai bentuk python -m pip, bukan pip polos. Bedanya kelihatan kalau kamu punya beberapa versi Python di komputer yang sama. Bentuk panjang itu mastiin paketnya masuk ke Python yang lagi aktif.
Cek isinya kapan saja:
python -m pip list
Apa itu requirements.txt dan gimana cara bikinnya?
requirements.txt adalah file teks berisi daftar library beserta versinya yang dipakai proyekmu. File ini yang kamu bagikan ke rekan tim, bukan folder .venv. Bikinnya satu perintah lewat pip freeze.
python -m pip freeze > requirements.txt
Isinya kira-kira begini:
matplotlib==3.9.2
numpy==2.1.1
openpyxl==3.1.5
pandas==2.2.3
seaborn==0.13.2
Di komputer lain, pemasangannya jadi tiga baris:
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
Tanda == ngunci versinya persis. Itu yang bikin hasil analisismu bisa diulang bulan depan dengan angka yang sama.
Alur kerja lengkap satu proyek baru
- Bikin folder proyek. Satu proyek satu folder, jangan campur.
- Bikin environment.
python -m venv .venv - Aktifkan.
source .venv/bin/activate - Install library yang dibutuhkan. Jangan install semuanya sekaligus, tambah pas butuh.
- Bikin file .gitignore. Isi baris
.venv/supaya folder itu nggak ikut ke repositori. - Simpan daftar library.
python -m pip freeze > requirements.txt, ulangi tiap kali kamu install paket baru. - Daftarkan sebagai kernel Jupyter kalau kamu kerja di notebook.
python -m pip install ipykernel
python -m ipykernel install --user --name=toko-berkah \
--display-name="Python (toko-berkah)"
Setelah itu, di Jupyter kamu bisa milih kernel bernama "Python (toko-berkah)" dari menu Kernel. Ini langkah yang paling sering kelewat, dan akibatnya notebook tetap pakai library sistem walau environment-nya sudah aktif di terminal.
Contoh kasus: dua jam yang kebuang gara-gara satu versi
Aku pernah gagal ngejalanin ulang skrip laporan penjualan bulanan yang terakhir dipakai delapan bulan sebelumnya.
Skripnya baca 12 file Excel, gabungin, lalu bikin ringkasan per cabang. Waktu dijalankan ulang, muncul error di baris df.append(). Fungsi itu dihapus di pandas 2.0, sementara skripnya ditulis waktu pandas masih versi 1.4.
Cari penyebabnya makan waktu sekitar dua jam, sebagian besar buat mastiin bukan datanya yang berubah. Perbaikannya sendiri cuma ganti append jadi pd.concat, lima menit.
Kalau waktu itu ada requirements.txt dengan baris pandas==1.4.2, pemulihan environment-nya cuma butuh tiga perintah. Dua jam itu jadi tiga menit.
Sekarang setiap folder proyek analisis di laptopku punya .venv sendiri. Total ada 11 folder, dan tiga di antaranya masih pakai pandas versi lama karena skripnya belum sempat diperbarui. Ketiganya tetap jalan.
Kesalahan umum waktu pakai virtual environment
- Install library sebelum environment aktif. Paketnya masuk ke Python sistem. Cek dengan
which pythondi macOS dan Linux, atauwhere pythondi Windows. - Unggah folder .venv ke GitHub. Ukurannya ratusan megabyte dan nggak bisa dipakai di sistem lain. Cukup unggah requirements.txt.
- Lupa perbarui requirements.txt. Tiap kali install paket baru, jalankan ulang pip freeze.
- Bikin satu environment buat semua proyek. Itu sama saja dengan nggak pakai environment sama sekali.
- Notebook pakai kernel lain. Environment aktif di terminal nggak otomatis kepakai di Jupyter. Daftarkan kernelnya dulu.
- Nyimpen data dan kode di dalam folder .venv. Folder itu sekali pakai dan sering dihapus. Taruh kode di folder proyek, bukan di dalamnya.
FAQ
Perlu nggak kalau aku cuma pakai Jupyter Notebook?
Perlu, dan di situ dampaknya paling terasa. Notebook lama sering berhenti jalan setelah kamu install library baru buat proyek lain. Dengan environment terpisah, notebook lama tetap pakai versi yang sama.
Bedanya venv, virtualenv, dan conda apa?
venv sudah ikut di Python sejak 3.3, jadi nggak perlu install. virtualenv paket terpisah yang sedikit lebih cepat. conda ngatur juga library sistem, cocok buat paket ilmiah yang susah dikompilasi.
Folder .venv perlu diunggah ke GitHub?
Jangan. Isinya besar dan khusus buat sistem operasimu. Cukup unggah requirements.txt, dan tambahkan baris .venv/ ke file .gitignore.
Kenapa pip install jalan tapi library-nya nggak kebaca?
Biasanya environment-nya belum aktif waktu kamu install. Cek lokasi Python yang aktif, lalu pasang ulang pakai python -m pip install nama_library.
Kalau environment-nya rusak gimana?
Hapus foldernya lalu bikin ulang. Isinya sekali pakai dan nggak nyimpen kode kamu, jadi nggak ada yang hilang. Pasang ulang dari requirements.txt, biasanya di bawah dua menit.
Langkah berikutnya
Tiga kebiasaan yang paling ngefek: satu folder proyek satu .venv, perbarui requirements.txt tiap install paket baru, dan daftarkan kernel Jupyter-nya.
Setelah environment-mu siap, lanjut ke cara baca file Excel di Python buat masukin data, lalu visualisasi pakai Seaborn.
Buat yang masih sering bolak-balik antara spreadsheet dan Python, fungsi kayak SUMIFS dan XLOOKUP di NgulikSheet bisa nutup kebutuhan pengolahan cepat sebelum datanya masuk ke Python. Konsep ETL yang rapi juga dimulai dari environment yang bisa diulang.
Bikin satu environment buat proyek yang lagi kamu kerjakan sekarang, lalu jalankan pip freeze. Lihat berapa banyak library yang ternyata kepasang tanpa kamu sadari.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Pandas groupby: Agregasi Data ala Pivot di Python (2026)
groupby ngelompokin baris berdasarkan kolom, lalu ngitung ringkasan per grup kayak total atau rata-rata. Ini pivot-nya pandas.
Pandas to_excel: Ekspor DataFrame ke Excel (2026)
to_excel nyimpen DataFrame pandas jadi file Excel .xlsx. Ini cara pakainya, dari satu sheet sampai banyak sheet, plus setelan yang bikin hasilnya rapi.
Pandas read_excel: Baca File Excel di Python
pandas read_excel baca file Excel jadi DataFrame, bisa pilih sheet tertentu dan lompatin baris judul yang berantakan. Ini cara pakai plus parameter penting dengan contoh data toko.