Membina dengan build
Cipta roda dan sdist
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, kemudianpython -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
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
- Struktur Projek dan pyproject.toml
- Membina dengan build
- Penerbitan Versi dan Metadata
- Menerbitkan dengan twine