Cara Mengelola Dependensi Python dengan Poetry

Dengan Poetry, mengelola dependensi pada projek Python menjadi lebih mudah dan simpel, jadinya kalian tidak perlu lagi melacak dependensi yang dibutuhkan dengan file requirements.txt dan membuat Virtual Environment secara manual setiap kali membuat atau menjalankan projek.

Instal Poetry

Poetry dapat diinstal di Linux, Windows, MacOS, bahkan Android (Termux).

Jika kalian menggunakan Linux atau MacOS, dapat menggunakan skrip instalasi resmi dari Poetry.

$ curl -sSL https://install.python-poetry.org | python3 -

Bagi pengguna Arch Linux, kalian bisa menggunakan paket aplikasi Poetry yang dikelola oleh Developer Arch Linux, untuk menginstalnya, jalankan perintah berikut:

$ sudo pacman -S python-poetry

Bagi pengguna Windows, kalian bisa mengikuti instruksi instalasi Poetry dari dokumentasi resmi Poetry.

Membuat Projek

Pertama-tama buatlah projek baru aplikasi berbasis Python menggunakan Poetry:

$ poetry new my-project

Poetry akan membuat projek baru dengan struktur direktori seperti di bawah ini:

├── my_project
│   └── __init__.py
├── pyproject.toml
├── README.md
└── tests
    └── __init__.py

Struktur direktori tersebut terdiri atas file bernama pyproject.toml yang berfungsi untuk melacak dependensi yang diperlukan dan file & direktori lain seperti direktori tests untuk keperluan testing.

Jika sudah mempunyai projek, kalian dapat menambahkan Poetry pada projek dengan mengikuti perintah berikut ini:

$ cd my-project
$ poetry init

pyproject.toml

pyproject.toml merupakan file konfigurasi Poetry yang salah satu fungsinya untuk melacak dependensi yang diperlukan.

Isi dari file pyproject.toml kira-kira seperti ini:

[tool.poetry]
name = "my-project"
version = "0.1.0"
description = ""
authors = ["adityaphra <[email protected]>"]
readme = "README.md"
packages = [{include = "my_project"}]

[tool.poetry.dependencies]
python = "^3.11"


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
  • tool.poetry terdiri atas informasi metadata projek seperti name, version, dan description yang bisa kalian kustomisasi.
  • tool.poetry.dependencies terdiri atas dependensi yang diperlukan oleh projek.
  • build-system terdiri atas spesifikasi bagaimana cara Poetry mem-build projek kalian.

Menambahkan & Menghapus Dependesi

Kalian dapat menambahkan dependensi pada bagian tool.poetry.dependencies pada file pyproject.toml secara langsung atau bisa menjalankan perintah poetry add seperti pada contoh berikut:

$ poetry add requests

Untuk menginstal dependensi dengan versi tertentu:

$ poetry add requests@^2.30

Untuk menghapus dependensi:

$ poetry remove requests

poetry.lock

Setiap kalian menambahkan, menghapus, dan memperbarui dependensi, Poetry akan menghasilkan file bernama poetry.lock

Fungsi file tersebut agar versi dependensi yang digunakan tetap konsisten meskipun diinstal di environment yang berbeda.

Menjalankan Projek Aplikasi

Untuk menjalankan projek aplikasi dengan Poetry, jalankan perintah poetry run seperti pada contoh berikut ini:

$ poetry run main.py

Instal & Memperbarui Dependensi

Jika file pyproject.toml sudah ada dan kalian ingin menginstal dependensi di enviroment berbeda, jalankan perintah berikut ini:

$ poetry install

Sedangkan untuk memperbarui dependensi berdasarkan file pyproject.toml:

$ poetry update