# Instalasi dan Konfigurasi Python Multi Versi + Virtual Environment di Windows 11

*Bismillaah Alhamdulillah.* 

Buat apa _install_ banyak Python dengan beda versi, kalau satu saja sudah cukup? 😊

Ceritanya begini, instalasi _Python_ di _OS_ Windows 11 saya semula melalui aplikasi _Anaconda_. Warisan dari instalasi lama di Windows 10 selumnya. Setelah sekian lama _install_, _uninstall_, _update_/_upgrade_ aplikasi atau paket _library_ di dalamnya — di berbagai _virtual environment_ berbeda — akhirnya ada konflik antar paket di _anaconda_\-nya.

Sudah saya coba melakukan _update_ semua paket ke _anaconda_ terbaru atau coba _reset_ (_rollback_) ke versi yang lama, tapi masih bermasalah. Coba _uninstall anaconda_, hapus semua direktori terkait _anaconda_, bahkan sampai ke _registry_\-nya, kemudian _install_ ulang _fresh_, juga belum mempan.

Akhirnya ambil keputusan buat _uninstall anaconda_ dan coba _install python_ yang versi asli (atau _standalone_). Pilihan pertama ingin mencoba _python_ versi terbaru yaitu versi **3.10**, langsung unduh di [websitenya](https://www.python.org/downloads/).

---

### 1\. Instalasi Awal

Setelah unduh file **_python-3.10.0-amd64.exe_**, langsung buka untuk melakukan instalasi. Tutorial instalasi sudah tersedia di [websitenya](https://docs.python.org/3/using/windows.html) juga.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796983709/q2c2dM7Bs.png)

Untuk setelan di gambar sebelah kiri dicentang semua pilihannya, dan sebelah kanan juga begitu (sebagian saja, lihat gambar). Untuk alamat direktori instalasi saya pilih di direktori _user_ dan nama _folder_\-nya _Python310_. Di halaman instalasi awal (tidak saya _screenshot_), terdapat opsi: **_Add Python 3.10 to PATH_**, dicentang saja biar nanti dapat otomatis dipanggil melalui _windows console_ di direktori manapun. Hal ini juga berlaku untuk _python_ versi **_3.8_** dan **_3.9_**.

Jika instalasi dan konfigurasi berhasil, kita dapat langsung mengujinya dengan membuka _command prompt_, dan mengetikkan _python \[tekan ENTER\]_.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796985400/fh3tmIwbV.png)

Untuk memeriksa alamat direktori instalasi, kita dapat menggunakan perintah: `pip -V`. Sebenarnya perintah ini digunakan untuk memeriksa versi dari aplikasi _pip_ dan alamat direktori paket _library_ dari _python_ yang diinstal.

> 
C:\\Users\\galih-hermawan>**pip -V**  
pip 21.3.1 from C:\\Users\\galih-hermawan\\Python310\\lib\\site-packages\\pip (python 3.10)

Sebagai tambahan info, salah satu tempat untuk menyimpan hasil konfigurasi agar aplikasi _python_ dapat dipanggil langsung di _command prompt_ adalah berada di :
> System Properties >Advanced > Environment Variables

Kalau di Windows, cukup ketik kata “_env_” di kotak pencarian langsung otomatis muncul tautan programnya.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796986897/EcVyvnETQ.png)

Setelah tombol “**_Environment Variables_**” diklik, akan muncul halaman berikut.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796988471/UEfkrgE4U-.png)

Klik ganda atau tekan tombol **_Edit_**, setelah menyorot pada pilihan (kolom) **_Variable_**, berisi **_Path_**.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796989935/ufgbuChXZ.png)

Selama terdapat isian alamat direktori _python_ di sini, maka semua aplikasi yang ada di direktori tersebut akan dapat dipanggil di _command prompt_ secara langsung. Jika tidak ada, dapat dibuatkan _path_ barunya dengan cara tekan tombol **_New_**, dan masukkan alamat direktori instalasi dari Python yang diinginkan.

---

### 2\. Instalasi Paket Library dan Pembuatan Virtual Environment

Penjelasan terkait apa pentingnya dan tutorial dasar penggunaannya dapat melihat di [website resminya](https://docs.python.org/3/tutorial/venv.html) atau di [Real Python](https://realpython.com/python-virtual-environments-a-primer/).

Singkatnya, jika tidak menggunakan _virtual environment_ (**_venv_**), semua aplikasi paket library akan disimpan di direktori `Lib\site-packages\` dalam direktori instalasi _python_ kita sebelumnya. Jika menggunakan **_venv_**, tempat penyimpanan paket dapat diletakkan di mana saja selain di direktori instalasi.

Misalnya, **_venv_** untuk mengembangkan aplikasi berbasis GUI (_graphical user interface_) dibedakan dengan **_venv_** _untuk_ aplikasi berbasis website, atau _mobile_.

Sebelum melakukan instalasi _virtual environment_ (**_venv_**), sebaiknya kita juga memeriksa jika ada pembaruan pada aplikasi-aplikasi yang terlibat dalam melakukan instalasi, yaitu: _pip_, _setuptools_, dan _wheel_. Berikut perintah melakukan _upgrade_ aplikasi jika tersedia.
```command
pip install --upgrade pip setuptools wheel
```

Berikutnya kita lakukan instalasi **_venv_** dengan mengeksekusi perintah berikut ini.
```shell
pip install virtualenv
```
Jika instalasi berhasil, berikutnya adalah kita dapat membuat **_venv_** dengan nama bebas. Aturan perintah dalam pembuatan **_venv_** adalah:
```console
python -m venv nama_venv
```
Pertama-tama adalah menetapkan dulu alamat direktori **_venv_**. Misalkan dalam contoh ini saya gunakan alamat berikut.

> D:\\PythonKu\\#venv\\

Misal kita akan membuat **_venv_** dengan nama _WebApps_. Cara pertama, dalam jendela _command prompt_, kita langsung dapat mengetikkan perintah berikut:
```command
python -m venv D:\PythonKu\#venv\WebApps
```
Isian *nama_venv* adalah nama **_venv_** disertai alamat direktori penyimpanan **_venv_** yang kita tetapkan. Dalam alamat **_venv_** tersebut akan otomatis dibuatkan folder baru bernama _WebApps_ yang sudah ada isinya.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796991301/ErGtb5gPJ.png)

Cara kedua, dari jendela _command prompt_, kita lakukan perintah pindah direktori ke direktori **_venv_**, kemudian buat **_venv_** baru dengan nama misalnya _WebAppsDua_.
> 
C:\\Users\\galih-hermawan>**cd D:\\PythonKu\\#venv\\  
**C:\\Users\\galih-hermawan>**d:  
**D:\\PythonKu\\#venv>**python -m venv WebAppsDua**

---

### 3\. Mengaktifkan dan Menggunakan _Virtual_ E_nvironment_

Setelah berhasil membuat **_venv_**, kita coba melakukan aktifasi **_venv_** dan bekerja di dalamnya. Untuk mengkatifkan **_venv_** kita ketikkan perintah dengan ketentuan berikut.
> 
**nama\_venv**\\Scripts\\activate

Jika posisi direktori _default_ di _command prompt_ ada di luar alamat direktori **_venv_**, maka kita cukup mengetikkan alamat direktori lengkap dari nama **venv** (contoh kasus **_venv_** _WebApps_) disertai dengan tambahan perintah “**_\\Scripts\\activate_**”.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796992741/iv66MSgQY.png)

Cara lain adalah dengan pindah direktori dulu ke alamat **#venv** kemudian mengetikkan perintah sebagaimana ada dalam ketentuan di atas.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796994133/O4DMynnNP.png)

_Nah_, setelah behasil mengaktifkan **_venv_**, kita dapat melakukan instalasi paket _library_ dan bekerja menggunakan lingkungan **_venv_** ini. Misal, kita lakukan instalasi paket bernama: **numpy**.
```command
pip install numpy  
...  
Successfully installed numpy-1.21.3
```
Paket ini akan disimpan di direktori **_venv_** _WebApps_, pada folder “**_Lib\\site-packages_**”.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796995507/w_b8vYbk0.png)

Untuk keluar dari **_venv_** cukup mengetikkan perintah: **_deactivate_**.

---

### 4\. Instalasi dan Konfigurasi Python Versi 3.8 dan 3.9

Sebelum dilanjutkan instalasi, ada cerita sedikit pengalaman menggunakan python 3.10. Waktu saya akan instal paket [**_Scikit-Learn_**](https://pypi.org/project/scikit-learn/) versi 1.0.1 dan [**_Scipy_**](https://pypi.org/project/scipy/) versi 1.7.1 (versi terakhir hingga tanggal artikel ini diterbitkan), ternyata paket tersebut baru mendukung hingga python versi 3.9.

Dan ketika akan memasang paket [**_Tensorflow_**](https://pypi.org/project/tensorflow/), instalasi berhasil tapi [**_Cuda (GPU)_**](https://developer.nvidia.com/cuda-gpus) saya tidak terdeteksi. Ketika dilakukan uji coba, modul _tensorflow_ ini meminta sebuah file **_.dll_** (_library_) yang terdapat pada _Cuda_ versi terbaru, — yaitu versi 11 — sedangkan milik saya masih versi 10.2. Versi ini memang sesuai dengan driver GPU Nvidia saya.

Setelah mencari informasi di internet [¹](https://github.com/tensorflow/tensorflow/issues/38194) [²](https://www.tensorflow.org/install/source#gpu) [³](https://forums.developer.nvidia.com/t/cuda-10-2-tensorflow-2-0-getting-an-error-when-testing-tensorflow/109712/2), ditemukan bahwa _Cuda-GPU_ versi 10.2 dapat disandingkan dengan _Tensorflow_ versi 2.2.0, _Keras_ versi 2.3.0, tapi harus dengan _Python_ 3.8 😔. Dikarenakan belum berhasil untuk [instalasi _tensorflow_ dari _source_](https://www.tensorflow.org/install/source_windows), terpaksa harus _install python_ versi 3.8.

Jadi, saat ini saya memiliki instalasi dari tiga _python_ dengan versi **_3.8_**, **_3.9_**, dan **_3.10_**. Alamat direktori instalasi saya buat pada alamat direktori _root_ yang sama, hanya beda nama.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796997001/DwfWYOgvI.png)

Kemudian untuk alamat direktori **_venv_** juga dibuat dengan kondisi serupa.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796998447/1LDa-VSpGU.png)

Untuk konfigurasi **_Path_** _—_ **_Environment Variables_**, saya masukkan alamat direktori dari ketiga versi _python_. _Python_ default yang akan digunakan adalah yang berada pada urutan teratas, dalam hal ini saya pilih yang versi **_3.8_**. Urutan ini dapat diganti dengan menekan tombol **_Move Up_** atau **_Move Down_** di menu sebelah kanan (dalam gambar terpotong).

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636796999839/QVGQEpQKj.png)

Selanjutnya saya buat **_venv_** sesuai kebutuhan pada masing-masing versi _python_.

---

### 5\. Penutup

Pada bagian penutup ini saya ingin memberikan tips bagaimana cara mengakses _python_ sesuai versinya dengan mudah.

1\. Mengubah nama file _python_ yang ada di direktori instalasi dengan tambahan nomor versi. Jika yang diprioritaskan adalah _python_ 3.8, maka yang versi lain nama aplikasinya dapat diubah, misal:
> 
Di direktori instalasi "**Python39**"  
python.exe -> python39.exe
> 
Di direktori instalasi "**Python310**"  
python.exe -> python310.exe

Untuk selanjutnya, kita cukup memanggil dengan _python39_ atau _python310_ jika ingin memilih versi selain _python_ 3.8. Dan untuk mengakses aplikasi _pip_, khusus versi 3.9 dan 3.10, kita tidak bisa lagi sekedar dengan menulis perintah ‘_pip’_. Tapi harus disertakan nama aplikasi _python_\-nya. Misalkan untuk melakukan instalasi paket (di luar **_venv_**) sesuai versi _python_ adalah:
> 
python39 -m pip install nama\_paket  
python310 -m pip install nama\_paket

2\. Tips berikutnya adalah mengkases cepat **_venv_** (dengan versi _python_ berapapun) melalui _file_ **_batch_** (**.bat**).

*   Siapkan folder khusus untuk menyimpan _file batch_, misalnya: “**_D:\\PythonKu\\#bat\\_**”.
*   Buka aplikasi _text editor_ (notepad, dan sejenisnya), isi dengan:
```batch
start D:\PythonKu\#venv\py39_WebApps\Scripts\activate
```
Kode tersebut bertujuan untuk membuka _command prompt_ dan mengeksekusi perintah yang mengaktifkan **_venv_** _WebApps_ yang sudah dibuat di _Python 3.9._ Silakan sesuaikan sesuai dengan alamat direktori **_venv_** dan nama **_venv_** yang sudah dimiliki.

*   Berikutnya simpan file tersebut dengan nama yang mudah diingat, misal dalam kasus di atas adalah: **py39\_WebApps.bat** (nama yang mewakili nama **_venv_** dan versi _python_ yang dipilih.)
*   File **.bat** ini dapat dibuat sejumlah **_venv_** yang dimiliki sesuai dengan versi _python_ masing-masing.
*   Terakhir, buat _shortcut_ dari file **_.bat_** tersebut, dan kirim ke _Desktop_.

Demikian cerita pengalaman kenapa dan bagaimana cara melakukan instalasi _python_ dengan versi yang berbeda-beda. Semoga bermanfaat.

[**Website**](https://galih.eu) **·** [**Github Pages**](https://galihboy.github.io) **·** [**Demo Mini Projects**](https://galihboy.github.io/mini_projects/)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636797001232/8TREDh8A9B.gif)
