/Python

Tutorial VirtualEnv Python | Mengenal Apa Itu Virtual Environment

Apakah yang disebut dengan Virtual Environment?

Tutorial Python Virtual Environment Untuk Pemula

Seperti namanya, Virtual Environment adalah sebuah ruang lingkup virtual yang terisolasi dari dependencies utama.

Virtual Environment sangat berguna ketika kita membutuhkan dependencies yang berbeda-beda antara project satu dengan lainnya yang berjalan pada satu system operasi yang sama.

Virtual Environment biasa digunakan untuk project berbasis Python. Karena Prject tersebut mempunyai kebutuhan / dependent yang berbeda-beda antara satu dengan lainnya, maka dibutuhkanlah sebuah virtual environment untuk menjalankannya, tanpa merubah configurations pada system operasi yang kita pakai.

Table of content

Berikut ini penjelasan singkatnya :

+-------------------+---------------+--------------------+
|                   |               |                    |
|                   |               |                    |
|                   |               |                    |
|     Project 1     |   Project 2   |    Project 3       |
| Django Framework  |     Flask     | ReactJS & Python   |
|                   |               |                    |
|                   |               |                    |
|                   |               |                    |
+--------+----------+-------+-------+---------+----------+
         |                  |                 |
         |                  |                 |
         |                  |                 |
         |                  |                 |
         v                  v                 v
+--------+--------+---------+--------+--------+----------+
|    Python 3.7   |     Python 2.7   |  NPM & Python3.8  |
|                 |                  |                   |
+-----------------+------------------+-------------------+
  1. Pada table pertama kita mempunyai sebuah project menggunakan Django Framework yang berjalan di atas bahasa pemrograman Python versi 3.7.
  2. Sedangkan pada table kedua kita mempunyai project menggunakan Flask Framework yang berjalan di atas bahasa pemrograman Python versi 2.7.
  3. Dan table terakhir kita mempunya sebuah project ReactJS dan Python yang berjalan pada Python versi 3.8.

Lalu apa yang akan terjadi jika kita tidak menggunakan virtual environment pada ketiga project di atas?

Tentunya hal tersebut suatu saat akan menyebabkan crash jika kita salah melakukan instalasi package yang dibutuhkan.

Bagaimana cara membuat Virtual Environment?

Ada beberapa cara untuk membuat virtual environment.

  1. Langkah pertama pastikan kita telah memiliki Python versi terakhir 3.7+.

Untuk mengetahui versi python berapakah yang telah terinstall, kita bisa menggunakan command berikut ini :

$ Python --version
Python 3.6.5 :: Anaconda, Inc. #output yang dihasilkan adalah versi python yang sedang kita gunakan

# atau 

$ Python3 --version
Python 3.8.7 :: Anaconda, Inc. #output yang dihasilkan adalah versi python yang sedang kita gunakan

Untuk menginstall latest version, kita bisa melakukan download terlebih dahulu di situs resmi python.org

$ 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 beberapa saat hingga proses selesai, dan kita akan melihat folder env dalam directory tersebut. Yang mana env adalah folder Virtual Environment yang baru saja kita buat.

Jika kita masuk ke dalam folder tersebut, kita akan menemukan banyak library / python package yang tentunya telah support pada versi python yang digunakan:

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) [email protected]:~$
  ^
  |
  +
 Kita telah berhasil mengaktifkan Virtual Environment yang baru saja kita buat dan sedang berada di dalamnya.

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


💡

Pro Tip Jika kita pengguna linux, maka default untuk menjalankan latest version python adalah dengan mengetik command python3 pada terminal.

buatlah file .aliases pada home directory dan letakkan script ini di dalamnya:
alias python=python3
alias pip=pip3


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

(env) [email protected]:~$ 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 telah terinstall otomatis di dalamnya.

Upgrade pip

Untuk melakukan upgrade dependencies pada virtual environment, kita dapat menggunakan perintah:

(env) [email protected]:~$ pip install --upgrade pip

Maka akan muncul hasil seperti di bawah 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 package menggunakan pip

Selanjutnya kita akan mencoba untuk menginstall Django Framework menggunakan pip.
Ketikkan perintah berikut ini di Terminal :

(env) [email protected]:~$ 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.

Langkah selanjutnya, apabila kita ingin melihat dependencies / package apa saja yang telah terinstall menggunakan pip, ketikkan perintah berikut ini di terminal :

(env) [email protected]:~$ pip list

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

Well done!.
Kita telah berhasil membuat Virtual Environment pada system operasi kita, sehingga kita tidak perlu khawatir dengan bermacam-macam project yang akan kita kerjakan, meskipun project tersebut menggunakan dependencies yang berbeda-beda.

Untuk menonaktifkan Virtual Environment tersebut bisa menggunakan perintah :

(env) [email protected]:~$ deactivate

Maka dengan otomatis kita akan keluar dari Virtual Environment

Conclusion | Kesimpulan

Virtual Environment sangat memudahkan kita untuk mengelola / me-manage banyak dependencies dari beberapa project yang berbeda-beda tanpa mengubah config pada system operasi tersebut.

Thank’s for reading.

Segala macam kritik dan saran tentang tulisan ini bisa ditinggalkan di kolom komentar di bawah ini.


Tags: #python, #linux, #os

Subscribe to noTnoob Dev

Get the latest posts delivered right to your inbox

iColdPlayer

iColdPlayer

Backend Developer | Python, Django, Linux & Rails

Read More