Developer Roadmap
/Package Manager
TopicStep 42 filesOpen folder on GitHub

Package Manager

package-manager.md
View on GitHub

PACKAGE MANAGER

PIP

  • Python Package Installer
  • Package manager default python
  • Kalau di bahasa lain | Bahasa | Package Manager | | ---------- | ----------------- | | JavaScript | npm / pnpm / yarn | | Python | pip | | PHP | composer | | Java | maven / gradle | | Go | go modules | pip digunakan untuk:
  • install package
  • uninstall package
  • freeze dependency

Command di pip

Install Package

pip install requests

Cek Package

pip list

Uninstall package

pip uninstall requests

Freeze dependencies (buat requirements.txt)

pip freeze > requirements.txt

Install dari requirements.txt

pip install -r requirements.txt

CONDA

  • Environment + package manager

Biasa Digunakan untuk

  • Data science
  • Machine learning
  • Managemment library yang butuh C/C++ binary
  • Multiple python version

Contoh library yang berat untuk pip

  • numpy
  • scipy
  • tensorflow
  • pytorch <br/>

Command Conda

Buat environment

conda create -n myenv python=3.12

Aktifkan

conda activate myenv

Install package

conda install numpy

UV

  • package manager modern berbasis Rust
  • pip -> lama
  • uv -> sangat cepat (20-100x lebih cepat)
<br/> Fitur uv - install packet super cepat - environment virtual manager - kompatibel dengan pip & PyPI - mendukung pyproject.toml - mirip pnpm / bun di ekosistem JS

Command UV

Install uv

pip install uv

Install package

uv pip install fastapi

Run environment

uv venv
source .venv/bin/activate

Poetry

  • Modern python dependency & env manager
  • Poetry banyak dipakai di project besar
  • Sama seperti npm + package.json, Poetry memakai
pyproject.toml

Poetry menyelesaikan masalah pip

  • dependency conflict
  • virtual environment
  • version lock
  • build & publish package

Command

Install poetry

pip install poetry

Buat project baru

poetry new myproject

Install package

poetry add fastapi

Jalankan env

poetry shell

File penting

  • pyproject.toml — seperti package.json

Poetry digunakan untuk

  • Backend web apps
  • ML pipeline
  • Library development
  • Production-level packaging

PDM

  • Python Development Master
  • Mirip poetry tapi lebih ringan

Pdm

  • Menggunakan pyproject.toml
  • Dependency resolver cepat
  • Mirip npm (tanpa virtualenv manual)
  • Mendukung PEP modern
  • Banyak dipakai python developer yang suka style JS/npm

Command

Install

pip install pdm

Inisiasi Project

pdm init

Install package

pdm add fastapi

Running environment otomatis di .venv

Perbandingan Singkat

ToolFungsiKelebihanKekurangan
pipinstall packagesimple, defaultdependency kadang bermasalah
PyPIregistry librarysemua library adabukan tool
condaenv + packagebest untuk data scienceberat
uvpip-superfastsangat cepatmasih baru
Poetryenv + dependencybest for productionagak rumit untuk pemula
PDMmodern dependencymirip npm, cepatbelum sepopuler poetry

Package manager dan beberapa contoh biasa dipakai

Backend Web/API (FastAPI, Flask)

  • Poetry atau uv (alternatif pip + virtualenv)

Machine Learning / Data Science

  • Conda

Library development (publish ke PyPI)

  • Poetry

Pemula

  • pip + virtualenv

Developer modern yang suka npm style

  • PDM