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__.pysrc/mypackage/core.pypyproject.tomlREADME.mddantests/
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__.pysebagai penanda paket pyproject.tomladalah konfigurasi standar:[build-system]dan[project]- Deklarasikan
name,version,requires-python, dandependencies - 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
- Struktur Proyek dan pyproject.toml
- Membangun dengan build
- Penerapan Versi dan Metadata
- Mempublikasikan dengan twine