Membangun dengan build
Buat wheel dan sdist
Membangun dengan build adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Apa Arti Membangun
Kode sumber Anda harus diubah menjadi artefak distribusi yang dapat dipasang oleh pip. Alat modern untuk ini adalah build, yang dijalankan sebagai python -m build.
Alat ini menghasilkan dua jenis berkas: distribusi sumber dan paket siap pasang.
Distribusi Sumber vs Paket Siap Pasang
Ada dua jenis artefak:
- distribusi sumber (.tar.gz), yaitu arsip sumber; pip membangunnya saat pemasangan
- paket siap pasang (.whl), yaitu arsip yang sudah dibangun; pip hanya membongkarnya
Paket siap pasang dipasang lebih cepat dan lebih disarankan. Distribusi sumber menjadi pilihan cadangan dan sumber kanonis.
Memasang Alat Pembangunan
Pasang sekali dengan pip install build. Alat ini adalah antarmuka tipis: alat ini membaca pyproject.toml, menyiapkan lingkungan terisolasi, lalu memanggil backend pembangunan Anda untuk membuat artefak.
Anda tidak memanggil backend tersebut secara langsung; build mengatur prosesnya.
Menjalankan Pembangunan
Dari akar proyek, jalankan python -m build. Secara bawaan, perintah ini membuat distribusi sumber dan paket siap pasang, lalu menempatkannya di direktori dist/ baru.
Gunakan --wheel atau --sdist untuk membangun hanya salah satunya.
args = []
targets = []
if '--sdist' in args:
targets.append('sdist')
if '--wheel' in args:
targets.append('wheel')
if not targets:
targets = ['sdist', 'wheel']
print('Will build:', targets)Nama Berkas Paket Siap Pasang
Nama paket siap pasang menyandikan metadata: mytool-0.1.0-py3-none-any.whl berarti nama mytool, versi 0.1.0, Python 3, tanpa persyaratan ABI, dan platform apa pun. Paket Python murni mendapatkan py3-none-any.
name = 'mytool'
version = '0.1.0'
wheel = name + '-' + version + '-py3-none-any.whl'
print(wheel)
print('Parts:', wheel[:-4].split('-'))Isolasi Pembangunan
Secara bawaan, build membuat lingkungan virtual baru, memasang requires dari [build-system] Anda, lalu melakukan pembangunan di sana. Hal ini menjamin proses pembangunan tidak secara tidak sengaja bergantung pada paket yang kebetulan hanya ada di lingkungan Anda.
Memeriksa Folder dist
Setelah pembangunan selesai, dist/ berisi artefak Anda. Menampilkan isinya memastikan apa yang dihasilkan sebelum Anda mengunggahnya. Ini hanyalah penampilan daftar direktori biasa.
dist = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in dist:
kind = 'sdist' if f.endswith('.tar.gz') else 'wheel'
print(kind.ljust(6), f)Memeriksa Paket Siap Pasang
Paket siap pasang hanyalah arsip ZIP. Anda dapat membongkarnya untuk memeriksa apakah modul dan berkas data Anda tersedia serta tidak ada hal penting yang tertinggal. Jika sebuah berkas tidak ada di sini, berkas tersebut juga tidak akan ada setelah pemasangan.
Pembangunan Bersih
Berkas lama di build/ atau dist/ dapat menghasilkan hasil yang membingungkan. Hapus direktori tersebut sebelum pembangunan rilis agar Anda menerbitkan tepat apa yang dihasilkan oleh sumber saat ini.
stale_dirs = ['build', 'dist', 'mytool.egg-info']
for d in stale_dirs:
print('Remove before clean build:', d)Pembangunan yang Dapat Direproduksi
Sumber yang sama seharusnya selalu membangun artefak yang sama. Tetapkan versi backend pembangunan Anda di [build-system] requires dan hindari mengambil nilai dari lingkungan yang sedang berjalan. Keterulangan berarti rekan satu tim atau server CI mendapatkan keluaran yang identik.
Jika digabungkan dengan pembangunan bersih, hal ini menghilangkan kejutan karena hasil berbeda di komputer saya.
Membangun di CI
Sebagian besar proyek dibangun di server integrasi berkelanjutan, bukan di laptop. Tugas CI mengambil kode, menjalankan python -m build, lalu menyimpan artefaknya. Hal ini menjamin rilis selalu berasal dari keadaan yang diketahui dan bersih.
Perintah yang sama persis dengan yang Anda jalankan secara lokal juga dijalankan di CI.
Uji Cepat
Uji pengetahuan Anda tentang pembangunan.
Rangkuman
Anda telah belajar membangun artefak:
pip install build, lalupython -m build- Menghasilkan distribusi sumber (.tar.gz) dan paket siap pasang (.whl) di
dist/ - Pembangunan berlangsung di lingkungan terisolasi menggunakan
[build-system]requires - Periksa paket siap pasang dan lakukan pembangunan bersih sebelum merilis
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membangun dengan build” gratis?
Ya — teks lengkap “Membangun dengan build” 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 “Membangun dengan build”?
Buat wheel dan sdist 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 2 dari 4.
Berapa lama pelajaran “Membangun dengan build” 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