
Panduan Instalasi Python di Windows, macOS, Linux
Panduan Instalasi Python di Windows, macOS, dan Linux Python telah menjadi salah satu bahasa pemrograman terpopuler di dunia dengan pertumbuhan yang luar biasa dalam beberapa tahun terakhir.
Pernahkah Anda mengalami situasi ini: Anda bekerja pada beberapa proyek Python yang membutuhkan versi package yang berbeda? Atau mungkin suatu proyek memerlukan versi Python 3.8 sementara yang lain membutuhkan Python 3.10?
Jika ya, Anda perlu mengenal virtual environment Python.
Virtual environment adalah lingkungan Python terisolasi yang memungkinkan Anda menginstal package dan dependensi tanpa mempengaruhi instalasi Python global di sistem operasi Anda.
Dengan kata lain, virtual environment memungkinkan Anda membuat “ruangan” terpisah untuk setiap proyek Python, dengan versi Python dan package mereka masing-masing.
Bayangkan skenario berikut:
Tanpa virtual environment, Anda akan menghadapi konflik dependensi yang rumit. Dengan virtual environment, setiap proyek dapat memiliki versi Django-nya sendiri.
Beberapa alasan utama menggunakan virtual environment:
Ada beberapa tools yang dapat digunakan untuk membuat virtual environment di Python:
venv
adalah modul yang sudah tersedia secara default di Python 3.3 ke atas. Ini adalah cara paling sederhana untuk membuat virtual environment.
# Membuat virtual environment bernama 'myenv'
python -m venv myenv
Virtual environment 'myenv' berhasil dibuat
Pada Windows:
myenv\Scripts\activate
Pada macOS dan Linux:
source myenv/bin/activate
Setelah diaktifkan, prompt terminal Anda akan berubah, menunjukkan nama virtual environment yang aktif:
(myenv) $
deactivate
virtualenv
adalah alat pihak ketiga yang lebih kaya fitur dibandingkan venv
. Virtualenv mendukung versi Python yang lebih lama dan memiliki beberapa fitur tambahan.
pip install virtualenv
Successfully installed virtualenv-20.24.0
virtualenv myproject
created virtual environment in 235ms
creator CPython3.10Windows(dest=C:\Users\User\myproject, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\User\AppData\Local\pypa\virtualenv)
added seed packages: pip==23.0.1, setuptools==67.6.1, wheel==0.40.0
activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Sama seperti venv
.
Pipenv menggabungkan pip dan virtualenv menjadi satu alat, menyediakan workflow yang lebih sederhana untuk mengelola dependensi proyek.
pip install pipenv
Successfully installed pipenv-2023.6.2
# Menginstal package dan membuat virtualenv secara otomatis
pipenv install requests
Creating a virtualenv for this project...
Pipfile: C:\Users\User\project\Pipfile
Using C:\Users\User\AppData\Local\Programs\Python\Python310\python.exe (3.10.0) to create virtualenv...
⠦ Creating virtual environment...created virtual environment in 235ms
creator CPython3.10Windows(dest=C:\Users\User\.virtualenvs\project-dH9sVkI3, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\User\AppData\Local\pypa\virtualenv)
added seed packages: pip==23.0.1, setuptools==67.6.1, wheel==0.40.0
activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
✔ Successfully created virtual environment!
Installing requests...
Adding requests to Pipfile's [packages]...
✔ Installation Succeeded
pipenv shell
exit
Conda adalah package manager dan environment manager yang biasa digunakan dalam ekosistem data science. Conda dapat mengelola tidak hanya package Python, tetapi juga dependensi non-Python.
conda create -n myenv python=3.9
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\Users\User\anaconda3\envs\myenv
added / updated specs:
- python=3.9
The following packages will be downloaded:
...
Proceed ([y]/n)? y
...
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate myenv
#
conda activate myenv
conda deactivate
Berikut adalah contoh kasus penggunaan virtual environment di dunia nyata:
Anda memiliki dua proyek Django berbeda, satu menggunakan Django 3.2 (LTS) dan satu lagi menggunakan versi terbaru Django 4.2.
# Membuat virtual environment untuk proyek pertama
python -m venv project1_env
# Aktivasi environment
# Di Windows:
project1_env\Scripts\activate
# Di macOS/Linux:
source project1_env/bin/activate
# Instal Django versi spesifik
pip install django==3.2.19
# Melihat versi yang terinstal
python -c "import django; print(django.__version__)"
# Output: 3.2.19
# Deaktivasi environment saat selesai
deactivate
# Membuat environment untuk proyek kedua
python -m venv project2_env
# Aktivasi environment kedua
# Di Windows:
project2_env\Scripts\activate
# Di macOS/Linux:
source project2_env/bin/activate
# Instal Django versi terbaru
pip install django==4.2.4
# Melihat versi yang terinstal
python -c "import django; print(django.__version__)"
# Output: 4.2.4
# Menggunakan conda untuk proyek yang membutuhkan Python 3.8
conda create -n timeseries_project python=3.8
conda activate timeseries_project
conda install pandas numpy matplotlib scikit-learn
# Menggunakan conda untuk proyek yang membutuhkan Python 3.10
conda create -n nlp_project python=3.10
conda activate nlp_project
conda install pandas numpy nltk transformers
Selain membuat virtual environment, Anda juga perlu tahu cara mengelola dependensi proyek.
File requirements.txt
adalah cara standar untuk mendokumentasikan dependensi Python.
# Dengan environment teraktivasi
pip freeze > requirements.txt
pip install -r requirements.txt
Pipenv menggunakan Pipfile
dan Pipfile.lock
untuk mengelola dependensi.
# Pipenv membuat Pipfile secara otomatis
pipenv install flask==2.0.1
pipenv install pytest --dev # Dependensi pengembangan
Conda dapat mengekspor environment ke file YAML.
# Ekspor environment
conda env export > environment.yml
# Buat environment dari file
conda env create -f environment.yml
Fitur | venv | virtualenv | Pipenv | Conda |
---|---|---|---|---|
Built-in | ✅ (Python 3.3+) | ❌ | ❌ | ❌ |
Mendukung Python 2 | ❌ | ✅ | ✅ (via virtualenv) | ✅ |
Manajemen dependensi | ❌ (memerlukan pip) | ❌ (memerlukan pip) | ✅ | ✅ |
Dependency resolution | ❌ | ❌ | ✅ | ✅ |
Mendukung dependensi non-Python | ❌ | ❌ | ❌ | ✅ |
File lock | ❌ | ❌ | ✅ (Pipfile.lock) | ✅ (environment.yml) |
Kemudahan penggunaan | Mudah | Mudah | Sedang | Sedang |
Kecepatan | Cepat | Cepat | Sedang | Lambat |
Use case utama | Proyek umum | Proyek umum | Web development | Data science |
Beberapa masalah umum yang mungkin Anda temui:
# Pastikan Python terinstal
which python3
# Gunakan python3 secara eksplisit
python3 -m venv myenv
Windows:
# Jika PowerShell menolak menjalankan skrip
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Linux/macOS:
# Periksa izin file
chmod +x myenv/bin/activate
# Pastikan virtual environment aktif
pip list
# Periksa PYTHONPATH
import sys; print(sys.path)
Virtual environment adalah alat esensial dalam workflow Python modern yang memungkinkan Anda:
Pemilihan tools virtual environment bergantung pada kebutuhan spesifik proyek Anda:
venv
untuk proyek sederhana dan built-invirtualenv
untuk kompatibilitas dengan Python versi lamaPipenv
untuk workflow modern dengan manajemen dependensi terintegrasiConda
untuk proyek data science dan dependensi non-PythonDengan memahami dan menggunakan virtual environment, Anda mengambil langkah penting untuk menjadi Python developer yang lebih profesional dan efisien.
Happy coding!
Panduan Instalasi Python di Windows, macOS, dan Linux Python telah menjadi salah satu bahasa pemrograman terpopuler di dunia dengan pertumbuhan yang luar biasa dalam beberapa tahun terakhir.
Apa itu Regresi Linier? Regresi linier adalah metode statistik yang digunakan untuk memahami hubungan antara dua variabel, yaitu variabel dependen dan independen.
Disclaimer: Ini merupakan opini pribadi saya saat ini, sebagai developer dengan 4 tahun pengalaman.
Struktur data adalah cara kita mengorganisir dan menyimpan data dalam program.