Cheatsheet Python venv

beberapa perintah venv yang berguna

Konten Halaman

Venv adalah alat manajemen lingkungan virtual berbasis perintah baris untuk Python. Ini jauh lebih sederhana dibandingkan Anaconda. Berikut beberapa perintah venv yang berguna.

Python sedang mencoba membuka sebuah kotak kayu.

Hanya untuk Anda ketahui bahwa menurut pendapat saya, ada alat yang jauh lebih baik untuk manajemen paket dan lingkungan Python, yaitu uv. Silakan lihat: uv - Manajer Baru untuk Paket, Proyek, dan Lingkungan Python

Cheat Sheet Venv Python

Membuat Lingkungan Virtual

  • Perintah standar (Python 3.3+):

    python -m venv venv
    

    Ini akan membuat lingkungan virtual bernama venv di direktori saat ini.

  • Dengan versi Python tertentu (jika terinstal):

    python3.10 -m venv venv
    

    atau menggunakan virtualenv:

    virtualenv -p /usr/local/bin/python3.10 venv
    

    (Membutuhkan paket virtualenv).

Mengaktifkan Lingkungan Virtual

  • Di Windows:
    .\venv\Scripts\activate
    
  • Di macOS/Linux:
    source venv/bin/activate
    
    Prompt shell sekarang harus menampilkan nama lingkungan.

Menonaktifkan Lingkungan Virtual

  • Di semua platform:
    deactivate
    
    Ini akan mengembalikan Anda ke Python sistem.

Menginstal Paket

  • Dengan pip:
    pip install
    
    Contoh:
    pip install numpy pandas
    
  • Upgrade pip (direkomendasikan):
    python -m pip install --upgrade pip
    

Membekukan dan Mengekspor Persyaratan

  • Simpan paket lingkungan saat ini:
    pip freeze > requirements.txt
    
  • Instal dari file requirements:
    pip install -r requirements.txt
    
    Pastikan lingkungan virtual Anda telah diaktifkan sebelum menjalankan perintah ini.

Menghapus Lingkungan Virtual

deactivate
rm -rf <env path>

Kesalahan Umum Saat Mengelola Lingkungan Virtual Python

Lupa Mengaktifkan Lingkungan Virtual

  • Kesalahan umum adalah menjalankan perintah tanpa mengaktifkan lingkungan virtual yang dimaksud, yang menyebabkan pemasangan paket di lingkungan global atau venv yang salah. Hal ini dapat menyebabkan konflik dependensi dan perilaku yang tidak terduga.

Tidak Mengunci Versi Paket

  • Menggunakan spesifikasi versi yang longgar (seperti >= alih-alih ==) dalam requirements.txt merusak reproduksibilitas. Mengunci versi paket secara eksak memastikan bahwa semua orang yang bekerja pada proyek menggunakan versi paket yang sama, mencegah masalah tak terduga saat pengiriman atau kolaborasi.

Bercampur antara Lingkungan Global dan Virtual

  • Secara tidak sengaja menginstal paket secara global atau mencampur lingkungan global dan virtual dapat menciptakan konflik, terutama jika proyek berbeda membutuhkan versi paket yang tidak kompatibel. Pastikan selalu bahwa Anda berada dalam lingkungan yang benar.

Menyertakan Lingkungan Virtual ke Versi Kontrol

  • Menyertakan direktori lingkungan virtual (misalnya venv/) ke versi kontrol membesarkan repositori dan tidak diperlukan. Selalu tambahkan direktori venv ke .gitignore untuk menjaga repositori tetap bersih.

Mengabaikan Pemisahan antara Ketergantungan Pengembangan dan Produksi

  • Gagal membedakan antara ketergantungan pengembangan dan produksi dapat menyebabkan pengiriman yang bloat atau tidak aman. Gunakan file requirements terpisah atau bagian konfigurasi untuk masing-masing.

Kurangnya Dokumentasi dan Otomatisasi

  • Tidak mendokumentasikan langkah pengaturan lingkungan atau gagal mengotomatisasi proses (dengan skrip atau Makefile) membuat onboarding kontributor baru dan reproduksi lingkungan menjadi lebih sulit.

Tidak Secara Rutin Membersihkan Lingkungan Lama

  • Seiring waktu, lingkungan virtual yang tidak digunakan dapat menumpuk, menghabiskan ruang disk dan menyebabkan kebingungan. Bersihkan secara rutin lingkungan venv yang usang untuk menjaga kerja ruang tetap rapi.

Mengabaikan Batasan Python Sistem dan Manajer Paket

  • Memodifikasi Python sistem atau mencampur manajer paket sistem dengan pip dapat merusak alat sistem dan memperkenalkan masalah yang sulit didiagnosis. Selalu gunakan venv untuk ketergantungan proyek dan hindari mengganggu paket yang dikelola sistem.

Tabel Ringkasan

Kesalahan Umum Dampak
Lupa mengaktifkan venv Menginstal paket ke lingkungan yang salah
Tidak mengunci versi paket Pembuatan tak terduga, bug sulit direproduksi
Bercampur antara lingkungan global dan virtual Konflik dependensi/versi
Menyertakan direktori venv ke versi kontrol Repositori bloat dan berantakan
Tidak memisahkan ketergantungan pengembangan dan produksi Pengiriman bloat atau tidak aman
Kurangnya dokumentasi/otomatisasi Onboarding sulit, pengaturan tidak konsisten
Tidak membersihkan lingkungan lama Penggunaan ruang disk, kebingungan
Memodifikasi Python sistem atau paket Instabilitas sistem, alat rusak

Mengikuti praktik terbaik seperti selalu mengaktifkan venv, mengunci dependensi, memisahkan lingkungan, dan menjaga dokumentasi yang jelas dapat membantu Anda menghindari kesalahan umum ini.

Perbedaan Utama antara Conda dan Lingkungan Virtual untuk Reproduksibilitas

Fitur Lingkungan Conda Lingkungan Virtual Python (venv/virtualenv)
Cakupan Manajemen Mengelola paket Python dan dependensi non-Python (misalnya, perpustakaan sistem, kompiler) Mengelola hanya paket Python melalui pip
Kontrol Versi Python Dapat menentukan dan menginstal versi Python apa pun per lingkungan Menggunakan versi Python yang terinstal di sistem
Konsistensi Silang Platform Lebih konsisten di berbagai OS (Windows, macOS, Linux) karena mengelola semua dependensi Bergantung pada perpustakaan sistem, yang mungkin berbeda per OS
Sumber Paket Menggunakan repositori Conda (biner yang dikompilasi, stack ilmiah) Menggunakan PyPI (pip) untuk paket Python
Reproduksibilitas Lebih tinggi untuk proyek ilmiah atau campuran bahasa; dapat mengekspor lingkungan penuh (conda env export) Baik untuk proyek Python murni; mungkin kurang reproduksibel jika dependensi sistem terlibat
Dependensi Non-Python Dapat menginstal dan mengelola (misalnya, OpenBLAS, libpng) Tidak dapat mengelola; harus diinstal secara terpisah
Ekspor/Impor Lingkungan conda env export / conda env create untuk reproduksibilitas penuh pip freeze > requirements.txt / pip install -r requirements.txt (hanya paket Python)
Kinerja Lebih cepat dan andal untuk paket ilmiah besar (misalnya, numpy, pandas) Mungkin memerlukan mengkompilasi dari sumber, terutama di Windows
Kompleksitas Sedikit lebih tinggi dalam pengaturan dan manajemen Ringan, sederhana untuk proyek Python dasar

Ringkasan Titik Kunci

  • Lingkungan Conda ideal untuk reproduksibilitas dalam proyek yang memerlukan dependensi Python dan non-Python, atau ketika replikasi yang tepat di berbagai platform sangat penting. Conda mengelola seluruh stack—termasuk Python itu sendiri, perpustakaan, dan bahkan kompiler—membuatnya lebih mudah untuk berbagi dan mereproduksi lingkungan kompleks, terutama dalam konteks ilmu data dan penelitian.

  • Lingkungan virtual Python (venv/virtualenv) ringan dan sangat baik untuk memisahkan dependensi Python dalam proyek Python murni. Namun, mereka tidak mengelola dependensi tingkat sistem atau non-Python, sehingga reproduksibilitas mungkin terganggu jika proyek Anda bergantung pada perpustakaan eksternal atau konfigurasi sistem tertentu.

  • Mengekspor dan berbagi lingkungan: Conda memungkinkan Anda mengekspor spesifikasi lingkungan penuh (conda env export), termasuk semua dependensi dan versinya, yang dapat dibuat ulang secara tepat di tempat lain. Dengan lingkungan virtual, pip freeze hanya menangkap paket Python, bukan dependensi sistem atau versi interpreter Python.

  • Kesimpulan
    Gunakan Conda untuk reproduksibilitas maksimal dalam proyek ilmiah, lintas platform, atau proyek kompleks. Gunakan lingkungan virtual Python untuk proyek ringan, murni Python di mana dependensi sistem bukan menjadi kekhawatiran.

Tautan yang Berguna