Kang Nur


Suka main, njajan, dan data
Share: 

Diperbarui Rabu, 23 Agu 2023

Ditulis oleh Kang Nur

Bekerja dengan Virtual Environment pada Conda Environment

Mengapa menggunakan virtual environment?

Ketika kita bekerja dengan tim, tidak semua orang pada tim kita menggunakan package dengan versi yang sama. Alhasil, ketika bekerja dengan versi package yang berbeda maka biasanya terjadi masalah ketika bekerja secara kolaborasi. Untuk mengatasi masalah ini, solusinya adalah dengan menggunakan virtual environment.

Apa itu virtual environment?

Sederhananya, virtual environment adalah sebuah ruang khusus pada setiap proyek kita yang bertujuan untuk memisahkan proyek dari ruang utama. Untuk memudahkan memahami definisi tersebut mari kita analogikan

Katakan dalam sebuah rumah ada ruang utama untuk berkumpul dengan ayah, ibu, kakak, dan adik. Namun, anggota keluarga ini memiliki hobi yang berbeda-beda. Contohnya, ayah hobinya melukis, ibu merajut, adik menggambar, dan kakak menulis. Jika kegiatan hobi anggota keluarga dilakukan di ruang utama, maka tidak akan efektif. Untuk mengatasi permasalahan ini solusinya adalah setiap anggota keluarga membutuhkan ruang khusus untuk kegiatan hobi mereka. Dalam kasus ini dibuat empat ruang hobi yaitu: ruang melukis, merajut, menggambar, dan menulis. Setelah dibuat ruang hobi sendiri-sendiri maka kegiatan hobi pun menjadi efektif dan tidak terganggu.

Bagaimana bekerja dengan virtual environment pada conda environment?

Sebagai seorang data analyst/scientist conda environment adalah salah satu package management yang sudah tidak asing lagi. Disini, kita mencoba bekerja dengan virtual environment pada lingkungan conda. Mari kita berpetualang;

Oh ya, ketika membuat virtual environment kita menggunakan bash ya.

  1. Membuat virtual environment

    Untuk membuat virtual environment, berikut kodenya:

      
    
        conda create --name <name_env>
    
      
      

    Mari kita praktikkan kode tersebut:

      
    
       conda create --name data_science_projects
    
      
      

    Dengan mempraktikkan kode tersebut, maka kita sudah mempunyai virtual environment dengan nama data_science_projects.

  2. Mengecek virtual environment yang ada

    Setelah membuat virtual environment, kita harus memastikan bahwa virtual environment berhasil kita buat, berikut kodenya:

      
    
       conda env list
    
      
      

    Hasil dari kode tersebut adalah:

      
    
        # conda environments:
        #
        base                  *  C:\Users\Kang Nur\miniconda3
        data_science_projects    C:\Users\Kang Nur\miniconda3\envs\data_science_projects
    
      
      

    Nah, jika di list tersebut ada nama virtual environment yang kita buat, maka kita berhasil membuat virtual environment.

    Oh iya, disitu ada base. Lalu apakah base ini? Seperti yang kita analogikan di awal tadi, bahwa base ini adalah ruang utama di sebuah rumah dan selain base adalah ruang-ruang hobi anggota keluarga.

  3. Menjadikan virtual environment tertentu sebagai default

    Pada dasarnya, base adalah environment default. Namun, bagaimana caranya kita ingin menjadikan virtual environment tertentu menjadi default? Untuk menjadikan virtual environment tertentu sebagai default, berikut kodenya:

      
    
        conda activate <name_env>
    
      
      

    Mari kita praktikkan kode tersebut:

      
    
       conda activate data_science_projects
    
      
      

    Setelah kita praktikkan kodenya, maka virtual environment defaultnya berubah.

    Dari:

      
    
        (base) C:\Users\Kang Nur>
    
      
      

    Menjadi:

      
    
        (data_science_projects) C:\Users\Kang Nur>
    
      
      

    Jika ingin mengembalikan ke environment base, berikut kodenya:

      
    
       conda deactivate
    
      
      
  4. Menginstall package pada virtual environment

    Pada virtual environment yang barusan kita buat, masih belum ada package apapun yang terinstall. Oleh karena itu belum bisa dipakai untuk membuat sebuah proyek, kita harus menginstall packagenya terlebih dahulu, berikut kodenya:

      
    
        conda install --name <name_env> <package>
    
      
      

    Jika kita ingin menginstall beserta versi packagenya, berikut kodenya:

      
    
        conda install --name <name_env> <package>=<version>
    
      
      

    Mari kita praktikkan kedua kode tersebut, kita menginstall python dengan versi 3.5 terlebih dahulu, karena python adalah package yang paling penting.

      
    
       conda install --name data_science_projects python=3.5
    
      
      

    Setiap kita menginstall sebuah package, maka ada dependensi yang mengikuti, berikut dependensi dari python 3.5.

      
        package                |            build
    ---------------------------|-----------------
    certifi-2020.6.20          |     pyhd3eb1b0_3         155 KB
    pip-10.0.1                 |           py35_0         1.6 MB
    python-3.5.6               |       he025d50_0        14.5 MB
    setuptools-40.2.0          |           py35_0         497 KB
    wincertstore-0.2           |   py35hfebbdb8_0          14 KB
    ------------------------------------------------------------
                                           Total:        16.7 MB
      
      

    Kemudian, kita praktikkan menginstall package tanpa versi. Katakan kita membutuhkan package untuk mengolah angka, maka kita membutuhkan numpy, berikut kodenya:

      
    
       conda install --name data_science_projects numpy
    
      
      

    Setelah mempraktikkan dua kode tersebut, kita mempunyai dua package, yaitu python dan numpy.

  5. Melihat package yang terinstall pada virtual environment

    Untuk memastikan bahwa dua package tersebut sudah terinstall di virtual environment kita, berikut kodenya:

      
    
       conda list --name <name_env>
    
      
      

    Mari kita praktikkan kode tersebut:

      
    
       conda list --name data_science_projects
    
      
      

    Hasil dari kode tersebut adalah:

      
    
        # packages in environment at C:\Users\Kang Nur\miniconda3\envs\data_science_projects:
        #
        # Name                    Version                   Build  Channel
        blas                      1.0                         mkl
        certifi                   2020.6.20          pyhd3eb1b0_3
        icc_rt                    2022.1.0             h6049295_2
        intel-openmp              2023.1.0         h59b6b97_46319
        mkl                       2018.0.3                      1
        mkl_fft                   1.0.6            py35hdbbee80_0
        mkl_random                1.0.1            py35h77b88f5_1
        numpy                     1.15.2           py35ha559c80_0
        numpy-base                1.15.2           py35h8128ebf_0
        pip                       10.0.1                   py35_0
        python                    3.5.6                he025d50_0
        setuptools                40.2.0                   py35_0
        tbb                       2021.8.0             h59b6b97_0
        tbb4py                    2018.0.5         py35he980bc4_0
        vc                        14.2                 h21ff451_1
        vs2015_runtime            14.27.29016          h5e58377_2
        wheel                     0.37.1             pyhd3eb1b0_0
        wincertstore              0.2              py35hfebbdb8_0
    
      
      

    Pada list tersebut telah terinstall dua package yaitu numpy dan python, seperti yang sudah dibahas di nomor 4, selain dua package yang sudah diinstall adalah dependensi atau package pendukung.

  6. Mengintegrasikan virtual environment dengan jupyter notebook

    Untuk menulis kode pada conda environment, biasanya seorang data analyst/scientist menggunakan jupyter notebook. Namun, virtual environment yang sudah kita buat belum terintegrasi dengan jupyter notebook. Untuk mengintegrasikan, berikut kodenya:

      
    
       conda install --name <name_env> nb_conda_kernels
    
      
      

    Mari kita praktikkan kode tersebut:

      
    
       conda install --name data_science_projects nb_conda_kernels
    
      
      

    Untuk memastikan package nb_conda_kernels sudah terinstall pada virtual environment kita, mari kita ulangi langkah nomor 5. Berikut hasilnya:

      
    
       nb_conda_kernels          2.3.1           py311haa95532_0
    
      
      

    Kemudian kita cek juga di jupyter notebook:

    Gambar 1. cek virtual environment di jupyter notebook

    Jika sudah ada virtual environment yang sudah kita buat seperti pada gambar 1, maka kita berhasil mengintegrasikan virtual environment dengan jupyter notebook.

  7. Membuat virtual environment sekaligus menginstall package yang dibutuhkan

    Dalam dunia nyata, biasanya kita tidak menginstall package satu-satu. Akan tetapi, kita membuat virtual environment sekaligus menginstall package-package yang kita butuhkan sekaligus. Sebagai contoh, kita mengerjakan proyek peramalan harga saham, maka kita membuat file konfigurasi yang berisi nama virtual environment beserta package-package yang dibutuhkan untuk peramalan harga saham, berikut contohnya:

    Oh iya, untuk nama file defaultnya adalah environments dan ekstensi filenya adalah .yml.

    nb: sebisa mungkin file konfigurasi ditempatkan satu direktori dengan proyek.

      
    
        name: peramalan_harga_saham
        channels:
            - anaconda
        dependencies:
        # essential
            - python
            - nb_conda_kernels # mengaktifkan kernel jupyter notebook
            - pip # package manager
        # package forecasting
            - pandas # manipulasi data
            - numpy # operasi matematika dan numerik
            - matplotlib # visualisasi data
            - seaborn # visualisasi data
            - scikit-learn # machine learning
            - statsmodels # analisis statistik dan peramalan
            - prophet # peramalan
    
      
      

    Untuk menjalankan file konfigurasi tersebut, berikut kodenya:

      
    
       conda env create -f <nama_file>.yml
    
      
      

    Mari kita praktikkan kode tersebut:

      
    
       conda env create -f environments.yml
    
      
      

    Untuk memastikan virtual environment yang kita buat, mari kita ulangi langkah nomor 2:

      
    
        (base) C:\Users\Kang Nur> conda env list
        # conda environments:
        #
        base                  *  C:\Users\Kang Nur\miniconda3
        peramalan_harga_saham    C:\Users\Kang Nur\miniconda3\envs\peramalan_harga_saham
        data_science_projects    C:\Users\Kang Nur\miniconda3\envs\data_science_projects
    
      
      

    Kita telah berhasil membuat satu lagi virtual environment untuk proyek peramalan harga saham, dan virtual environment tersebut sudah siap dipakai karena sudah teinstall package-package yang dibutuhkan, tanpa kita menginstall package satu-satu.

  8. Menghapus virtual environment

    Kadang kala kita ingin menghapus sebuah virtual environment dikarenakan kesalahan menginstall package, atau tidak diperlukan lagi atau alasan lain, berikut kodenya:

      
    
       conda env remove --name <nama_env>
    
      
      

    Mari kita praktikkan kode tersebut dengan menghapus virtual environment data_science_projects.

      
    
       conda env remove --name data_science_projects
    
      
      

    Untuk memastikan bahwa virtual environment data_science_projects sudah terhapus, mari ulangi kembali langkah nomor 2:

      
    
        (base) C:\Users\Kang Nur> conda env list
        # conda environments:
        #
        base                  *  C:\Users\Kang Nur\miniconda3
        peramalan_harga_saham    C:\Users\Kang Nur\miniconda3\envs\peramalan_harga_saham
    
      
      

    Virtual environment tinggal dua, environment default dan environment peramalan_harga_saham.

Penutup

Dengan menggunakan virtual environment, seorang data analyst/scientist dapat menghindari permasalahan version dan konflik pada package yang berbeda pada saat berkolaborasi dengan tim. Dan juga dengan membuat ruang-ruang khusus pada setiap proyek kita, membuat pekerjaan kita menjadi rapi.

Apa selanjutnya?

  1. Pembaca diharapkan memahami pentingnya penggunaan virtual environment dalam proyek data analysis/science.

  2. Pembaca dapat melakukan melakukan langkah-langkah yang sudah dibahas pada proyek data analysis/science yang lain sehingga pembaca lebih mahir dalam menggunakan virtual environment.

,