0Pricing
Python Academy · Pelajaran

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, lalu python -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

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