Python Academy · Pelajaran

Membina dengan build

Cipta roda dan sdist

Pelajaran 2 daripada 413 langkah

Membina dengan build ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Maksud Pembinaan

Kod sumber anda mesti ditukarkan kepada artifak edaran yang boleh dipasang oleh pip. Alat moden untuk tujuan ini ialah build, yang dijalankan sebagai python -m build.

Alat ini menghasilkan dua jenis fail: edaran sumber dan arkib roda.

Edaran Sumber berbanding Arkib Roda

Dua jenis artifak:

  • edaran sumber (.tar.gz) ialah arkib sumber; pip membinanya semasa pemasangan
  • arkib roda (.whl) ialah arkib prabina; pip hanya mengekstraknya

Arkib roda dipasang dengan lebih pantas dan lebih diutamakan. Edaran sumber ialah pilihan sandaran dan sumber kanonik.

Memasang Alat Pembinaan

Pasang sekali dengan pip install build. Ia ialah antara muka hadapan yang ringkas: alat ini membaca pyproject.toml anda, menyediakan persekitaran terpencil dan memanggil bahagian belakang pembinaan untuk mencipta artifak.

Anda tidak memanggil bahagian belakang itu secara langsung; build menyelaraskan prosesnya.

Menjalankan Pembinaan

Dari akar projek, jalankan python -m build. Secara lalai, perintah ini menghasilkan edaran sumber dan arkib roda, kemudian meletakkannya dalam direktori dist/ yang baharu.

Gunakan --wheel atau --sdist untuk membina satu jenis sahaja.

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 Fail Arkib Roda

Nama arkib roda mengekod metadata: mytool-0.1.0-py3-none-any.whl bermaksud nama mytool, versi 0.1.0, Python 3, tiada keperluan ABI dan mana-mana platform. Pakej Python tulen mendapat py3-none-any.

name = 'mytool'
version = '0.1.0'
wheel = name + '-' + version + '-py3-none-any.whl'
print(wheel)
print('Parts:', wheel[:-4].split('-'))

Pengasingan Pembinaan

Secara lalai, build mencipta persekitaran maya yang baharu, memasang requires daripada [build-system] anda dan melakukan pembinaan di situ. Ini menjamin bahawa pembinaan tidak bergantung secara tidak sengaja pada pakej yang kebetulan terdapat dalam persekitaran anda.

Memeriksa Direktori dist

Selepas pembinaan, dist/ mengandungi artifak anda. Menyenaraikan kandungannya mengesahkan perkara yang telah dihasilkan sebelum anda memuat naiknya. Ini hanyalah penyenaraian 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 Arkib Roda

Arkib roda hanyalah arkib ZIP. Anda boleh mengekstraknya untuk mengesahkan bahawa modul dan fail data anda ada serta tiada perkara penting yang tertinggal. Jika fail tiada di sini, fail itu juga akan tiada selepas pemasangan.

Pembinaan Bersih

Fail lama dalam build/ atau dist/ boleh menghasilkan keputusan yang mengelirukan. Padamkan direktori ini sebelum pembinaan keluaran supaya anda menerbitkan tepat perkara yang dihasilkan oleh sumber semasa.

stale_dirs = ['build', 'dist', 'mytool.egg-info']
for d in stale_dirs:
    print('Remove before clean build:', d)

Pembinaan Boleh Diulang

Sumber yang sama sepatutnya sentiasa menghasilkan artifak yang sama. Tetapkan versi bahagian belakang pembinaan secara tepat dalam keperluan [build-system] dan elakkan pengambilan nilai daripada persekitaran semasa. Kebolehulangan bermaksud rakan sepasukan atau pelayan integrasi berterusan mendapat hasil yang serupa.

Digabungkan dengan pembinaan bersih, langkah ini menghapuskan kejutan yang hanya berlaku pada komputer sendiri.

Pembinaan dalam Integrasi Berterusan

Kebanyakan projek dibina pada pelayan integrasi berterusan dan bukannya komputer riba. Tugas integrasi berterusan mendapatkan kod, menjalankan python -m build dan menyimpan artifak. Ini menjamin bahawa keluaran sentiasa datang daripada keadaan yang diketahui dan bersih.

Perintah yang sama tepat seperti yang anda jalankan secara setempat akan dijalankan dalam integrasi berterusan.

Semakan Pantas

Uji pengetahuan anda tentang pembinaan.

Rumusan

Anda telah mempelajari cara membina artifak:

  • pip install build, kemudian python -m build
  • Menghasilkan edaran sumber (.tar.gz) dan arkib roda (.whl) dalam dist/
  • Pembinaan berlaku dalam persekitaran terpencil menggunakan keperluan [build-system]
  • Periksa arkib roda dan lakukan pembinaan bersih sebelum menerbitkan keluaran
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
76
Pelajaran
320

Soalan Lazim

Adakah pelajaran “Membina dengan build” percuma?

Ya — teks penuh “Membina dengan build” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Membina dengan build”?

Cipta roda dan sdist Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Python Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Membina dengan build” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Struktur Projek dan pyproject.toml
  2. Membina dengan build
  3. Penerbitan Versi dan Metadata
  4. Menerbitkan dengan twine
← Kembali ke Python Academy