Python Academy · Oppitunti

Julkaiseminen twinellä

Lataa PyPI:hin

Oppitunti 4/413 vaihetta

Julkaiseminen twinellä on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

Viimeinen vaihe

Olette luoneet artefaktit hakemistoon dist/. Viimeinen vaihe on niiden lataaminen PyPI:hin, jotta koko maailma voi asentaa pakettinne komennolla pip install. Tähän käytetään yleensä työkalua twine.

twine lataa tiedostot turvallisesti HTTPS-yhteyden kautta ja tarkistaa artefaktit ennen niiden lähettämistä.

twinen asentaminen

Asentakaa se komennolla pip install twine. Se on pieni ja tarkasti rajattu työkalu: sen ainoa tehtävä on tarkistaa ja ladata hakemiston dist/ tiedostot. Se ei rakenna mitään.

Ensin TestPyPI

Latausten harjoittelua varten on erillinen testiympäristö, TestPyPI. Julkaiskaa sinne ensin, jotta voitte löytää ongelmat sotkematta oikeaa pakettihakemistoa. TestPyPI:n nimet ja versiot ovat riippumattomia PyPI:stä.

Ladatkaa paketti komennolla twine upload --repository testpypi dist/*.

Tarkistus ennen lataamista

twine check dist/* tarkistaa, että metatiedot ja pitkä kuvaus näkyvät PyPI:ssä oikein. Suorittakaa tarkistus joka kerta: muuten rikkinäinen README-kuvaus voi näkyä projektisivullanne pelkkänä tekstinä.

files = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in files:
    status = 'PASSED' if f.endswith(('.gz', '.whl')) else 'SKIP'
    print('check', f, '->', status)

API-tunnukset, ei salasanoja

Tunnistautukaa PyPI-tililtänne saatavalla API-tunnuksella, älkää salasanallanne. Käyttäkää käyttäjänimenä __token__ ja salasanana tunnusta, joka alkaa merkkijonolla pypi-. Tunnuksen voi rajata koskemaan yksittäistä projektia, ja sen voi perua milloin tahansa.

username = '__token__'
token = 'pypi-AgEIcHl...'
print('Username:', username)
print('Token starts with:', token[:5])
print('Never commit the token to git')

Tunnistetietojen tallentaminen

Välttäkää tunnusten kirjoittaminen uudelleen tallentamalla ne tiedostoon ~/.pypirc tai ympäristömuuttujiin (TWINE_USERNAME, TWINE_PASSWORD). Pitäkää tämä tiedosto versionhallinnan ulkopuolella ja vain omassa luvassanne luettavissa.

Lataaminen PyPI:hin

Kun TestPyPI näyttää hyvältä, julkaiskaa paketti oikeasti komennolla twine upload dist/*. Hetken kuluttua pakettinne voidaan asentaa kaikkialla maailmassa. Toimintoa ei voi perua: samaa versiota ei voi ladata uudelleen sen poistamisen jälkeen.

Versiot ovat muuttumattomia

PyPI ei koskaan salli julkaistun version korvaamista. Jos löydätte julkaisun jälkeen virheen, teidän on julkaistava uusi versio, esimerkiksi kasvattamalla patch-numeroa. Ottakaa tämä sääntö osaksi työnkulkuanne, jotta ette joudu umpikujaan.

published = {'1.0.0', '1.0.1'}
new_version = '1.0.1'
if new_version in published:
    print(new_version, 'already on PyPI - bump and rebuild')
else:
    print(new_version, 'is free to upload')

Asennuksen varmistaminen

Varmistakaa lataamisen jälkeen, että kaikki toimii: luokaa uusi virtuaaliympäristö ja suorittakaa pip install mytool, ja tuokaa paketti sitten ohjelmaan. Puhtaasta ympäristöstä asentaminen paljastaa puuttuvat tiedostot ja riippuvuusvirheet, joita koonti ei havainnut.

Luotettu julkaiseminen

Modernit projektit voivat ohittaa manuaaliset tunnukset luotetulla julkaisemisella: PyPI todentaa CI-työnkulun, kuten GitHub Actionsin, suoraan OpenID Connectin avulla. Pitkäkestoista salaista tunnusta ei tallenneta mihinkään, mikä tekee menetelmästä turvallisemman.

twine huolehtii edelleen lataamisesta, mutta tunnistetiedot ovat lyhytkestoisia ja myönnetään suorituksen aikana.

Julkaisujen automatisointi

Yleinen käyttötapa käynnistää julkaisun, kun git-tunniste, kuten v1.0.0, lähetetään palveluun. CI-työnkulku rakentaa paketin, suorittaa komennon twine check ja lataa paketin automaattisesti. Tunnisteen luomisesta tulee ainoa version julkaiseva toimenpide.

Näin julkaisut pysyvät yhdenmukaisina ja manuaaliset latausvirheet jäävät pois.

Pikatarkistus

Testatkaa julkaisemisen osaamistanne.

Kertaus

Julkaisitte paketin:

  • pip install twine ja sen jälkeen twine check dist/*
  • Harjoittelitte julkaisua TestPyPI:ssä ennen oikeaa lataamista
  • Tunnistauduitte rajatulla API-tunnuksella (__token__), ette koskaan salasanalla
  • twine upload dist/* julkaisee paketin; versiot ovat muuttumattomia, joten virheiden korjaaminen edellyttää uuden version julkaisemista
  • Varmistitte asennuksen puhtaalla pip install -komennolla
Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Julkaiseminen twinellä” ilmainen?

Kyllä – oppitunnin ”Julkaiseminen twinellä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Julkaiseminen twinellä”?

Lataa PyPI:hin Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Julkaiseminen twinellä”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Projektirakenne ja pyproject.toml
  2. Koonti buildilla
  3. Versiointi ja metatiedot
  4. Julkaiseminen twinellä
← Takaisin: Python Academy