0Pricing
Python Academy · Pelajaran

Struktur Proyek dan pyproject.toml

Susun sebuah paket

Struktur Proyek dan pyproject.toml adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Mengapa Kode Anda Perlu Dikemas

Skrip berada di komputer Anda; sebuah paket dapat dipasang oleh siapa saja dengan pip install. Pengemasan mengubah folder berisi kode menjadi unit yang dapat didistribusikan, memiliki versi, dan digunakan kembali.

Langkah pertama adalah tata letak proyek yang rapi dan sebuah berkas konfigurasi.

Tata Letak src

Struktur yang direkomendasikan menempatkan kode yang dapat diimpor di dalam direktori src/:

  • src/mypackage/__init__.py
  • src/mypackage/core.py
  • pyproject.toml
  • README.md dan tests/

Tata letak src mencegah Anda secara tidak sengaja mengimpor kode dari akar proyek, bukan dari salinan yang sudah dipasang.

Berkas __init__.py

__init__.py menandai sebuah direktori sebagai paket yang dapat diimpor dan dijalankan saat paket tersebut pertama kali diimpor. Berkas ini juga menjadi tempat Anda mengekspos API publik dengan mengimpor nama-nama penting.

Bahkan __init__.py yang kosong sudah cukup untuk membuat sebuah paket.

package_dir = 'src/mypackage'
files = ['__init__.py', 'core.py', 'utils.py']
for f in files:
    print(package_dir + '/' + f)
print('Importable as:', 'mypackage')

Apa Itu pyproject.toml

pyproject.toml adalah satu-satunya berkas konfigurasi standar (PEP 518/621) untuk pengemasan Python modern. Berkas ini menggantikan setup.py lama untuk sebagian besar proyek dan dibaca oleh alat pembangunan.

Berkas ini menggunakan format TOML: bagian-bagian berada dalam tanda kurung siku, sedangkan barisnya berbentuk key = value.

Tabel Sistem Pembangunan

Tabel [build-system] memberi tahu alat cara membangun paket Anda. Pilihan yang umum adalah:

  • requires = ['setuptools', 'wheel']
  • build-backend = 'setuptools.build_meta'

Backend lain mencakup Hatchling dan Flit; gagasan dasarnya sama.

Tabel Proyek

Tabel [project] menyimpan metadata: name, version, description, authors, readme, requires-python, dan dependencies. Inilah yang dilihat pengguna di PyPI.

Anggap saja tabel ini sebagai kartu identitas paket Anda.

project = {
    'name': 'mytool',
    'version': '0.1.0',
    'requires-python': '>=3.9',
    'dependencies': ['requests>=2.0'],
}
for k, v in project.items():
    print(k, '=', v)

Aturan Penamaan

Nama paket harus unik di PyPI dan mengikuti normalisasi: tidak membedakan huruf besar-kecil, dengan tanda hubung dan garis bawah dianggap sama. Periksa ketersediaannya sebelum menetapkan nama agar tidak terjadi konflik saat mengunggah.

name = 'My_Cool.Tool'
normalized = name.lower().replace('_', '-').replace('.', '-')
print('PyPI normalized name:', normalized)

Mendeklarasikan Dependensi

Daftarkan dependensi saat runtime di bawah dependencies dengan batasan versi seperti 'requests>=2.28,<3'. Fitur tambahan opsional ditempatkan di bawah [project.optional-dependencies] dan dapat dipasang melalui pip install mytool[dev].

Buat batasan ses longgar mungkin selama tetap aman agar paket Anda dapat berdampingan dengan paket lain.

Titik Masuk

Untuk mengirimkan alat baris perintah, tambahkan entri [project.scripts] seperti mytool = 'mypackage.cli:main'. Setelah dipasang, mengetikkan mytool akan menjalankan fungsi tersebut. Begitulah alat CLI seperti black atau pytest menyediakan perintahnya.

Menyertakan Berkas Nonkode

Berkas data (templat, JSON) tidak disertakan secara otomatis. Konfigurasikan data paket di backend pembangunan agar berkas tersebut ikut dikirimkan di dalam paket siap pasang. Lupa melakukan hal ini sering menyebabkan masalah yang berfungsi di komputer lokal tetapi rusak setelah dipasang.

Pemasangan yang Dapat Diedit untuk Pengembangan

Selama pengembangan, pasang paket Anda dalam mode yang dapat diedit dengan pip install -e .. Perubahan pada sumber langsung berlaku tanpa perlu memasang ulang. Hal ini bergantung pada pyproject.toml yang benar, yang menjadi alasan lain untuk menyiapkannya sejak awal.

Pemasangan yang dapat diedit memberikan siklus umpan balik tercepat saat Anda mengembangkan paket secara bertahap.

Uji Cepat

Uji pengetahuan Anda tentang struktur proyek.

Rangkuman

Anda telah menyusun sebuah paket:

  • Gunakan tata letak src dengan __init__.py sebagai penanda paket
  • pyproject.toml adalah konfigurasi standar: [build-system] dan [project]
  • Deklarasikan name, version, requires-python, dan dependencies
  • Tambahkan titik masuk [project.scripts] untuk CLI dan konfigurasikan data paket

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Struktur Proyek dan pyproject.toml” gratis?

Ya — teks lengkap “Struktur Proyek dan pyproject.toml” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Struktur Proyek dan pyproject.toml”?

Susun sebuah paket Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Struktur Proyek dan pyproject.toml” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Struktur Proyek dan pyproject.toml
  2. Membangun dengan build
  3. Penerapan Versi dan Metadata
  4. Mempublikasikan dengan twine
← Kembali ke Python Academy