pip adalah package installer resmi Python dan telah dibundel bersama installer Python sejak versi 3.4. pip bertugas satu: mencari distribution di PyPI, memasangnya beserta seluruh pohon dependency-nya ke site-packages, lalu mencatat apa saja yang sudah terpasang. Pada chapter ini kita akan mempraktikkan siklus lengkapnya: install, periksa, upgrade, hapus, dan mendokumentasikan hasilnya.
Semua perintah pada chapter ini dijalankan di terminal. Idealnya perintah dijalankan di dalam virtual environment agar package tidak mencemari instalasi Python global — cara membuatnya dibahas pada Chapter Membuat Virtual Environment.
Menginstal Package #
Perintah dasarnya adalah pip install diikuti distribution name. Berikut hasil nyata memasang package build (alat untuk membangun package Python yang akan kita pakai pada chapter akhir section ini):
pip install buildOutput yang Dihasilkan:
Collecting build
Using cached build-1.6.1-py3-none-any.whl.metadata (5.6 kB)
Collecting packaging>=24.0 (from build)
Using cached packaging-26.3-py3-none-any.whl.metadata (3.5 kB)
Collecting pyproject_hooks (from build)
Using cached pyproject_hooks-1.3.3-py3-none-any.whl.metadata (1.3 kB)
Using cached build-1.6.1-py3-none-any.whl (31 kB)
Using cached packaging-26.3-py3-none-any.whl (129 kB)
Using cached pyproject_hooks-1.3.3-py3-none-any.whl (10 kB)
Installing collected packages: pyproject_hooks, packaging, build
Successfully installed build-1.6.1 packaging-26.3 pyproject_hooks-1.3.3Mari kita baca transkrip tersebut baris per baris:
Collecting build: pip mencari distribution bernamabuilddi PyPI dan menemukan versi 1.6.1.Collecting packaging>=24.0 (from build): metadatabuildmenyatakan dependencypackaging>=24.0, jadi pip menelusurinya juga. Baris berikutnya menelusuripyproject_hooks. Inilah resolusi pohon dependency dari Chapter Memahami Python Packages.Using cached ...: pip memakai salinan arsip dari cache lokal. Pada komputer yang cache-nya kosong, baris ini tampil sebagaiDownloading ....Installing collected packages: ...: pip memasang ketiga package sekaligus, disusun dari dependency paling dasar.Successfully installed build-1.6.1 ...: daftar package yang berhasil terpasang beserta versinya.
Memeriksa dan Menghapus Package #
Setelah instalasi, ada tiga perintah yang paling sering dipakai. pip list menampilkan seluruh package terpasang di environment aktif:
pip listOutput yang Dihasilkan:
Package Version
--------------- -------
build 1.6.1
packaging 26.3
pip 25.0.1
pyproject_hooks 1.3.3pip show menampilkan metadata satu package, termasuk daftar dependency-nya pada baris Requires:
pip show buildOutput yang Dihasilkan (jalur pada Location akan berbeda di komputer Anda):
Name: build
Version: 1.6.1
Summary: A simple, correct Python build frontend
Home-page: https://build.pypa.io
Author:
Author-email: Filipe Laíns <[email protected]>, Bernát Gábor <[email protected]>, layday <[email protected]>, Henry Schreiner <[email protected]>
License-Expression: MIT
Location: /home/budi/proyek-toko/.venv/lib/python3.12/site-packages
Requires: packaging, pyproject_hooks
Required-by: Perintah pip uninstall menghapus package. Opsi -y melewati pertanyaan konfirmasi:
pip uninstall -y packagingOutput yang Dihasilkan:
Found existing installation: packaging 26.3
Uninstalling packaging-26.3:
Successfully uninstalled packaging-26.3Perhatikan bahwa pip hanya menghapus packaging, bukan build yang bergantung padanya. pip tidak menelusuri dependency terbalik secara otomatis; jika build kemudian rusak karena kehilangan dependency-nya, kitalah yang harus memasang ulang versi yang cocok.
Memasang Versi Tertentu dan Upgrade #
Versi tertentu bisa kita minta langsung dengan version specifier dalam tanda kutip:
pip install "packaging==24.0"Output yang Dihasilkan:
Collecting packaging==24.0
Using cached packaging-24.0-py3-none-any.whl.metadata (3.2 kB)
Using cached packaging-24.0-py3-none-any.whl (53 kB)
Installing collected packages: packaging
Successfully installed packaging-24.0Perintah pip install --upgrade memperbarui package ke versi terbaru yang cocok:
pip install --upgrade packagingOutput yang Dihasilkan:
Requirement already satisfied: packaging in ./.venv/lib/python3.12/site-packages (24.0)
Collecting packaging
Using cached packaging-26.3-py3-none-any.whl.metadata (3.5 kB)
Using cached packaging-26.3-py3-none-any.whl (129 kB)
Installing collected packages: packaging
Attempting uninstall: packaging
Found existing installation: packaging 24.0
Uninstalling packaging-24.0:
Successfully uninstalled packaging-24.0
Successfully installed packaging-26.3Transkrip di atas memperlihatkan mekanisme upgrade: pip mencatat versi lama 24.0 sudah terpasang, menghapusnya (Attempting uninstall), lalu memasang versi baru 26.3. Operator penentu versi yang dikenal pip dirangkum pada tabel berikut — semantic versioning di baliknya dibedah tuntas pada Chapter Dependency Pinning.
| Specifier | Arti | Cocok untuk 2.32.5? |
|---|---|---|
==2.32.5 | tepat versi ini | ya |
>=2.31 | versi 2.31 ke atas | ya |
<=2.32 | versi 2.32 ke bawah | tidak |
~=2.32 | >=2.32, tetapi masih 2.x | ya |
!=2.32.5 | apa pun kecuali versi ini | tidak |
==2.32.* | seluruh rilis 2.32.x | ya |
Terakhir, pip freeze mencetak seluruh package terpasang dalam format nama==versi — bahan baku file requirements.txt yang dibahas pada Chapter requirements.txt:
build==1.6.1
packaging==26.3
pyproject_hooks==1.3.3