Apakah yang disebut dengan Virtual Environment?

Tutorial Python Virtual Environment Untuk Pemula

  • Penjelasan singkat mengenai apa itu Virtual Environment?

Virtual Environment adalah sebuah lingkungan virtual yang sangat bermanfaat jika kita ingin menginstall beberapa dependencies untuk banyak project yang akan kita kerjakan karena systemnya yang terpisah (terisolasi) dari system operasi utama.

Dalam Virtual Environment kita dapat melakukan atau menginistall apapun tanpa merubah configurations system global pada OS yang kita gunakan.

Saya sendiri awalnya tidak terpikirkan jika system operasi kita dapat crash / Error dikarenakan kita harus menginstall banyak dependencies untuk project yang sedang kita kerjakan.

Berikut ini penjelasan singkatnya :

    +---------------+-----------------+------------------+----------------+----------------+
    |               |                 |                  |                |                |
    |               |                 |                  |                |                |
    |               |                 |                  |                |                |
    |    Project 1  |     Project 2   |     Project 3    |   Project 4    |    Project 5   |
    |     Laravel   | Django Framework|       Flask      |    Node JS     |     Angular    |
    |               |                 |                  |                |                |
    |               |                 |                  |                |                |
    |               |                 |                  |                |                |
    +-------+-------+--------+--------+---------+--------+--------+-------+--------+-------+
            |                |                  |                 |                |
            |                |                  |                 |                |
            |                |                  |                 |                |
            |                |                  |                 |                |
            v                v                  v                 v                v
    +-------+-------+--------+--------+---------+--------+--------+-------+--------+--------+
    |  Gulp, NPM    |    Python 3.7   |     Python 2.7   |  NPM & Python  |   React, NPM    |
    |               |                 |                  |                |                 |
    +---------------+-----------------+------------------+----------------+-----------------+
  1. Pada table pertama kita mempunya Project Laravel dan membutuhkan dependencies seperti Gulp, NPM dan lainnya.
  2. Project kedua kita mempunya Django Framework (based on python) dan membutuhkan dependencies Python 3.7.
  3. Para table ketiga kita mempunya Flask dan membutuhkan dependencies Python 2.7
  4. Pada project keempat kita mempunyai Node.JS Project dan membutuhkan dependencies NPM & Python
  5. Sedangkan pada project kelima kita mempunya angular dan membutuhkan React dan NPM.

Pernahkan kalian terpikirkan apa jadinya jika kita menginstall semua dependencies di atas secara global? mungkin untuk system operasi closed source seperti Windows tidak akan menjadi masalah.

Akan tetapi bagaimana jika kita menginstall semua dependencies di atas dalam sebulah system operasi yang Open Source seperti Linux?

Maka akan menimbulkan side effect pada system (dependencies global) tersebut. Oleh karena itu Virtual Environment sangatlah penting bagi kita yang menggunakan system operasi open source dan memiliki banyak project didalamnya.

Tentu kita tidak ingin laptop / pc kesayangan kita menjadi bermasalah karena adanya System Error yang disebabkan oleh package yang telah kita install secara global.

How to install Virtual Environment? | Bagaimana cara membuat Virtual Environment pada Linux?

  1. Langkah pertama pastikan kita telah mempunya Python version 3+. untuk memeriksa versi Python yang kita gunakan kita dapat mengeceknya via terminal dengan perintah :
$ Python --version
Python 3.6.5 :: Anaconda, Inc. #output yang dihasilkan adalah versi python yang sedang kita gunakan

Apabila kita belum mempunyai silahkan upgrade python ke versi 3++ mengikuti tutorial ini.

Setelah kita mempunya Python 3 yang telah terinstall langkah selanjutnya adalah langsung membuat Virtual Environment.

$ python3 -m venv env

atau juga bisa menggunakan :

# kita bisa menggunakan `python` tanpa version python jika default yang kita punya adalah versi 3!
$ python -m venv env

Tunggulah hingga proses selesai dan kita akan melihat folder env dalam directory tersebut yang mana env adalah folder Virtual Environment yang baru saja kita buat. Masuklah ke folder tersebut dan kita akan banyak menemukan beberapa library baru yang sudah siap pakai dengan struktur seperti berikut :

env/
    |--bin                    
    |--include               
    |--lib
    |--lib64
    |--pip-selfcheck.json
    `--pyvenv.cfg

Mengaktifkan Virtual Environment Setelah kita berhasil membuat Virtual Environment, selanjutkan kita harus mengaktifkannya terlebih dahulu dengan cara :

& source env/bin/activate

Maka di akan muncul seperti dibawah ini :

(env) icoldplayer@icoldplayer:~$
  ^
  |
  +
 Kita telah berhasil mengaktifkan Virtual Environment yang baru saja kita buat dan sedang berada di dalamnya.

Apabila sejauh ini berhasil tanpa kendala, next step kita akan coba install dependencies menggunakan pip atau pip3

Sebelum kita install beberapa dependencies menggunakan pip, akan lebih bagus apabila kita upgrade pip version terlebih dahulu dengan cara :

(env) icoldplayer@icoldplayer:~$ pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.

pip (9.0.3)
setuptools (39.0.1)

You are using pip version 9.0.3, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Secara default, begitu kita membuat Virtual Environment baru, maka kedua package tersebut sudah otomatis didalamnya.

Upgrade pip

Lalu kemudian upgrade pip dengan perintah :

(env) icoldplayer@icoldplayer:~$ pip install --upgrade pip

maka akan muncul hasil seperti dibawah ini :

Cache entry deserialization failed, entry ignored
Collecting pip
  Using cached https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-19.0.3

Install Dependencies menggunakan pip

Selanjutnya kita akan coba untuk install Django Framework dengan menggunakan pip. Ketikkan perintah berikut ini di Terminal :

(env) icoldplayer@icoldplayer:~$ pip install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/c7/87/fbd666c4f87591ae25b7bb374298e8629816e87193c4099d3608ef11fab9/Django-2.1.7-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 1.3MB/s 
Collecting pytz (from django)
  Using cached https://files.pythonhosted.org/packages/61/28/1d3920e4d1d50b19bc5d24398a7cd85cc7b9a75a490570d5a30c57622d34/pytz-2018.9-py2.py3-none-any.whl
Installing collected packages: pytz, django
Successfully installed django-2.1.7 pytz-2018.9

Dari perintah di atas kita telah berhasil melakukan installasi Django dengan sukses. selanjutnya apabila kita ingin melihat dependencies / package apa saja yang telah kita install ketikkan perintah berikut ini di terminal :

(env) icoldplayer@icoldplayer:~$ pip list

Package    Version
---------- -------
Django     2.1.7  
pip        19.0.3 
pytz       2018.9 
setuptools 39.0.1 

Well done, Congratulation fellows!. kita telah berhasil membuat Virtual Environment pada system operasi kita. sehingga kita tidak perlu khawatir apabila terjadi Crash dengan project kita karena kita berada di lingkungan Virtual Environment.

Untuk menonaktifkan Virtual Environment tersebut bisa menggunakan perintah :

(env) icoldplayer@icoldplayer:~$ deactivate

Maka dengan otomatis kita akan keluar dari Virtual Environment

Conclusion | Kesimpulan

Virtual Environment memungkinkan kita untuk dapat mengelola / me-manage paket pada banyak project yang kita kerjakan secara terpisah dari system operasi utama karena Virtual Environment dibuat terpisah (terisolasi dari system operasi utama).

Thank’s for reading. Terima kasih telah membaca tulisan ini, apabila ada kesalahan dalam penulisan ataupun sulit untuk di mengerti, silahkan tinggalkan komentar anda di kolom dibawah ini.


Tags: #python, #linux, #os, #Blog