Categories
Python

Mengelola Proyek Python di Git Tanpa Menyimpan Folder Virtual Environment (venv)

Ketika bekerja dengan proyek Python, terutama yang menggunakan virtual environment (venv), penting untuk menjaga repository tetap bersih dan mudah digunakan di perangkat lain. Salah satu tantangan yang sering muncul adalah memastikan folder venv tidak tersimpan di repository tetapi tetap mempermudah instalasi pustaka di perangkat baru.

Berikut adalah panduan langkah demi langkah yang dapat Anda ikuti untuk mengatasi masalah tersebut:

1. Mengecualikan venv dari Repository Git

Agar folder venv tidak tersimpan di repository Git, gunakan file .gitignore. Ini adalah file yang menginstruksikan Git untuk mengabaikan file atau folder tertentu.

Langkah:

  1. Buat file .gitignore di direktori proyek Anda (atau perbarui jika sudah ada).
  2. Tambahkan aturan berikut untuk mengabaikan folder libraries yang merupakan folder virtual environment:
libraries/

Dengan aturan ini, Git tidak akan melacak folder libraries.

2. Membuat File requirements.txt

File requirements.txt berfungsi untuk mencatat semua pustaka yang digunakan dalam proyek Anda. Dengan file ini, siapa pun yang bekerja pada proyek Anda dapat menginstal pustaka dengan mudah.

Langkah:

  1. Pastikan virtual environment aktif.
  2. Jalankan perintah berikut untuk membuat file requirements.txt:
pip freeze > requirements.txt

Perintah ini akan mencatat semua pustaka yang diinstal beserta versinya ke dalam file requirements.txt.

3. Mengunggah Proyek ke Repository Git

Setelah file .gitignore dan requirements.txt siap, Anda bisa mulai mengunggah proyek ke Git. Berikut langkah-langkahnya:

  1. Inisialisasi Git (jika belum):
    git init
  2. Tambah Semua File (kecuali yang diabaikan):
    git add .
  3. Commit Perubahan:
    git commit -m "Initial commit"
  4. Hubungkan dengan Repository Remote dan Push:
    git remote add origin
    git branch -M main
    git push -u origin main

4. Menyiapkan Proyek di Perangkat Baru

Ketika Anda atau rekan kerja ingin menjalankan proyek di perangkat lain, Anda hanya perlu mengikuti langkah berikut:

  1. Clone Repository:
    git clone <URL_REPOSITORY>
    cd <NAMA_FOLDER_PROYEK>
  2. Buat dan Aktifkan Virtual Environment:
    • Untuk Linux/MacOS:
      python -m venv libraries
      source libraries/bin/activate
    • Untuk Windows:
      python -m venv libraries
      libraries\Scripts\activate
  3. Install Pustaka dari requirements.txt:
    pip install -r requirements.txt

Dengan langkah ini, proyek Anda akan siap digunakan dengan pustaka yang sama seperti di perangkat sebelumnya.

Tips Tambahan

Apa yang Harus Dilakukan Jika Menambahkan Pustaka Baru?

Jika Anda menginstal pustaka baru menggunakan pip, file requirements.txt tidak akan otomatis diperbarui. Anda harus memperbaruinya secara manual.

Langkah:

  1. Install pustaka baru, misalnya:
    pip install nama_pustaka
  2. Perbarui requirements.txt:
    pip freeze > requirements.txt
  3. Commit perubahan ke repository:
    git add requirements.txt
    git commit -m "Update requirements.txt to include nama_pustaka"
    git push origin main

Keuntungan Mengelola Proyek dengan Cara Ini

  1. Repository Lebih Ringan: Folder venv tidak tersimpan, sehingga menghemat ruang penyimpanan di repository.
  2. Kolaborasi Lebih Mudah: Rekan kerja hanya perlu menjalankan pip install -r requirements.txt untuk menyiapkan proyek.
  3. Manajemen Versi Library: File requirements.txt memastikan semua pustaka yang digunakan sesuai dengan versi yang Anda gunakan.

Dengan langkah-langkah ini, Anda bisa menjaga proyek Python tetap bersih, terorganisir, dan mudah dikelola di berbagai perangkat. Selamat mencoba! 🚀

Post Disclaimer

The information contained in this post is for general information purposes only. The information is provided by Yoga Ari Tofan, S.Kom., M.Kom. and while we endeavour to keep the information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the post for any purpose.