Kuidas oma pythoni paketti PyPisse üles laadida

PyPi paketi register on üks omadustest, mis muudab pythoni nii võimsaks: Ainult lihtsa käsuga pääsete juurde tuhandetele lahedatele raamatukogudele, mis on teie jaoks kasutamiseks valmis. Selles lühitutvustuses selgitan, kuidas saate üles laadida oma koodi PyPi-sse ja lasta teistel oma leiutistest kasu saada. Järgmistel lehtedel näitan teile järgmisi samme:

  • Pange oma kood avaldamiseks valmis
  • Looge pythoni pakett
  • Looge failid, mida PyPi vajab
  • Looge PyPi-konto
  • Laadige oma pakett üles saidile github.com
  • Laadige oma pakett üles PyPi-sse
  • Paigaldage oma pakett pipi abil
  • Muutke oma paketti
Täielik juhend selle kohta, kuidas oma paketti PyPisse üles laadida ja pipi kaudu installida. Ekraanipilt: PyPi.org

Aga mis on PyPi?

Noh, vastavalt nende veebisaidile:

Pythoni paketiindeks (PyPI) on Pythoni programmeerimiskeele tarkvara hoidla. PyPI aitab teil leida ja installida Pythoni kogukonna arendatud ja jagatud tarkvara. Lugege pakettide installimise kohta. Paketi autorid kasutavad tarkvara levitamiseks PyPI-d. Siit saate teada, kuidas Python-koodi PyPI-le pakkida.

Kuidas PyPi kasutada?

Olen kindel, et enamik teist on juba PyPi (pip) installinud ja sellega töötanud. Kui te pole seda teinud, siis kindlasti peaksite! See on sama lihtne kui selle faili allalaadimine. Nüüd avage käsuviip ja liikuge “cd” kaudu kataloogi, kus allalaaditud fail asub. Seejärel käivitage käsk “python get-pip.py”.

cd "C: // PATH // TO // YOUR // DOWNLOADED // FAIL"
python get-pip.py

Pipi kasutamiseks tippige konsooli „pip insall paketinimi”. Kui soovite installida skreepeasy, sisestage järgmine käsk:

pip paigaldada scrapeasy

Kas saite tõrke, mille kohaselt „pip” ei tuvastata sisemise ega välise käsu, töötava programmi ega pakkfailina? Ärge paanitsege, see on meil käes. Teie pip-skripti pole Windowsi keskkonnamuutujates, nii et te ei pääse sellele juurde oma süsteemi kõikjalt. Parandame selle järgmise käsuga:

setx PATH "% PATH%; C: // KUS // PYTHON // ON // PAIGALDATUD // Skriptid"

Või näiteks

setx PATH "% PATH%; C: \ Python36 \ Scripts"

See peaks nüüd toimima.

Pange oma kood avaldamiseks valmis

Valmistame teie üleslaadimiseks ette koodi. Esiteks peate oma koodist eemaldama kõik printimisväljavõtted. See on tüütu, kui töötate raamatukoguga ja teie käsuviip on üle ujutatud prindisõnumitega, mis pole teie oma - seetõttu eemaldage need kõik. Kui soovite kasutajat teatud tegevustest teavitada, kasutage logimist.

Ärge kindlasti lisage koodi, mis eksisteerib väljaspool funktsiooni klassi, vastasel juhul töötab see kood iga kord, kui keegi teie teeki impordib. Kui soovite klassidesse lisada näidiskoodi (mis on legitiimne), mähkige see funktsiooni „__main__”.

kui __name__ == "__main__":
    teie näidiskood läheb siia

Looge pythoni pakett

Paketi loomiseks looge kaust, mille nimi on täpselt see, kuidas soovite oma paketti nimetada. Paigutage sellesse kausta kõik failid ja klassid, mida soovite saata.

Nüüd looge fail nimega __init__.py (jälle kaks alakriipsu). Avage fail valitud tekstiredaktoriga. Selles failis ei kirjuta te muud kui impordite avaldusi, millel on järgmine skeem:

paketinimest.Faili nimi import Klassinimi

Faili __init__.py kasutatakse selleks, et märkida, millistele klassidele soovite paketi liidese kaudu juurdepääsu. Toome näite. Oletame, et soovite üles laadida raamatukogu nimega “MyLib” PyPi-sse. Esiteks looge kaust nimega “MyLib” ja pange klassid selle sisse.

MyLib
 -Class1.py
 -Class2.py

Seejärel eemaldage kõik prindiavaldused ja kood, mis ei asu klassis.

Lõpuks looge fail __init.py __- ja importige kõik meetodid, millele kasutaja peaks juurde pääsema.

MyLib
 -__init__.py
 -Fail1.py
 -Fail1.py
# __Init__.py sees
MyLib.File1-st impordi klass A, klassB, klassC
saidist MyLib.File2 importige klass X, klassY, klassZ

Looge PyPi-konto

PyPi konto jaoks saate end siin registreerida. Pidage meeles oma kasutajanime (mitte nime, mitte e-posti aadressi) ja parooli, vajate seda hiljem üleslaadimiseks.

Laadige oma pakett üles saidile github.com

Looge githubi repo, mis sisaldab kõiki faile, mida me sekundiga loome, aga ka teie paketi kausta. Pange repo täpselt pakendiks. Sellise repo näite leiate siit.

Looge failid, mida PyPi vajab

PyPi vajab töötamiseks kolme faili:

  • setup.py
  • setup.cfg
  • LITSENTS.txt
  • README.md (optiline, kuid väga soovitatav)

Pange kõik need failid väljaspool oma paketi kausta:

MyLib
 setup.py
 setup.cfg
 LITSENTS.txt
 README.md

Vaatame need failid ükshaaval läbi

setup.py

Fail setup.py sisaldab teavet teie paketi kohta, mida PyPi vajab, näiteks selle nime, kirjeldust, praegust versiooni jne. Kopeerige ja kleepige järgmine kood ja asendage stringid vastava sisuga:

saidilt distutils.core impordi häälestus
seadistamine (
  name = 'YOURPACKAGENAME', # Kuidas te oma paketi kausta nimetasite (MyLib)
  Paketid = ['YOURPACKAGENAME'], # Valis sama, mis "nimi"
  version = '0,1', # Alustage väikese numbriga ja suurendage seda iga tehtud muudatusega
  litsents = 'MIT', # Valige litsents siit: https://help.github.com/articles/licensing-a-repository
  description = 'TÜÜBI OMA KIRJELDUS SIIN', # Andke oma raamatukogu kohta lühike kirjeldus
  author = 'OMA NIMI', # Sisestage oma nimi
  author_email = 'your.email@domain.com', # Sisestage oma e-post
  url = 'https://github.com/user/reponame', # Esitage link oma githubile või oma veebisaidile
  download_url = 'https://github.com/user/reponame/archive/v_01.tar.gz', # Selgitan seda hiljem
  märksõnad = ['MÕNED', 'MEANINGFULL', 'MÄRKSÕNAD'], # märksõnad, mis määravad teie paketi kõige paremini
  install_requires = [# Selleni jõuan sekundiga
          valideerijad,
          'beautifulsoup4',
      ],
  klassifikaatorid = [
    'Arenguseisund: 3 - alfa', # valis teie paketi hetkeseisuks kas 3 - alfa, 4 - beeta või 5 - tootmine / stabiilne
    'Sihtitav vaatajaskond :: arendajad', # Määratlege, et teie vaatajaskond oleks arendaja
    'Teema :: Tarkvaraarendus :: Ehitustööriistad',
    'Litsents :: OSI kinnitatud :: MIT litsents', # Valige jällegi litsents
    'Programmeerimiskeel :: Python :: 3', # Täpsustage, milliseid pühtoni versioone soovite toetada
    'Programmeerimiskeel :: Python :: 3.4',
    'Programmeerimiskeel :: Python :: 3.5',
    'Programmeerimiskeel :: Python :: 3.6',
  ],
)

Las ma selgitan download_url ja install_ nõuab natuke edasi.

download_url

Olete oma projekti varem oma githubi hoidlasse üles laadinud. Nüüd loome githubis teie projekti uue väljalaskeversiooni. Seejärel laadib selle väljalaske alla igaüks, kes käitab käsku “pip install YourPackage”.

Esiteks minge saidile github.com ja liikuge oma hoidlasse. Järgmisena klõpsake vahekaarti "väljalasked" ja siis "Loo uus väljaanne". Nüüd määratlege sildi versioon (kõige parem on kasutada sama numbrit, mida kasutasite oma väljale setup.py versiooniväli: v_01. Lisage väljalase pealkiri ja kirjeldus (mitte nii oluline) ja klõpsake siis nuppu „avalda väljaanne“. Nüüd näete uut väljaannet ja jaotises Varad on link lähtekoodile (tar.gz). Paremklõpsake sellel lingil ja vali Kopeeri lingi aadress. Kleebi see lingiaadress faili setup.py väljale download_url. Iga kord, kui soovite oma paketti hiljem värskendada, laadige uus versioon githubisse üles, looge uus väljaanne, nagu me just arutasime, määrake uus väljalaskesilt ja kopeerige-kleepige link lähtekoodile failile setup.py (mitte unustage ka versiooninumbri suurendamine).

Install_nõudeid

Siin määratlete kõik teie paketi sõltuvused - kõik imporditavad pip-paketid. Lihtsalt öeldes: minge kõik oma klassid läbi ja vaadake, mida olete importinud. Iga pakett, mille olete impordinud ja pipi kaudu alla laadinud (kõige soovitatavalt kõik, välja arvatud standardsed teegid), tuleb siin loetleda installinõuetena, lisades paketi nime.

Lubage mul tuua teile näide

# Klassi 1 failis
impordi numpy kui np
skreipilt imporditud veebisaidilt
impordi aeg

Paketid “tuimaks” ja “scrapeasy” laaditi alla pipi kaudu, nii et peate oma sõltuvusse lisama “tuimas” ja “scrapeasy”. Aga kuidas sa tead, kas pakett on tavakogu või allalaaditud pipi kaudu? Noh, lihtsalt avage oma cmd ja tippige pip install paketi nimi. Kui teil on nõue “juba täidetud”, on teil hea minna. Kui kuvatakse tõrge, mis väidab: „Nõuetele vastavat versiooni ei õnnestunud leida”, siis teate, et seda paketti pole installitud pipi või tavalise teegi kaudu.

Saadud install_requires väli näeks välja järgmine:

install_requires = [
          'tuimaks',
          "kriimustatud",
      ],

setup.cfg

See on lühike. Looge uus fail nimega „setup.cfg“. Kui teil on kirjeldusfail (ja kindlasti peaksite seda tegema!), Saate selle täpsustada siin:

# Setup.cfg sees
[metaandmed]
kirjeldus-fail = README.md

LITSENTS.txt

Selle faili abil saate määratleda kõik litsentsi üksikasjad. Kõige soovitavam on lihtsalt kopeerida ja kleepida sellelt veebisaidilt litsentsi tekst faili LICENSE.txt. Kasutan oma projektide jaoks alati MIT-litsentsi, kuid kasutage julgelt ka oma.

MIT litsents
Autoriõigus (c) 2018 OMA NIMI
Luba antakse kõigile, kes selle koopia saavad, tasuta
selle tarkvara ja sellega seotud dokumentatsioonifailide ("Tarkvara") abil
Tarkvaras ilma piiranguteta, sealhulgas õiguste piiramata
kasutada, kopeerida, muuta, ühendada, avaldada, levitada, all-litsentsida ja / või müüa
Tarkvara koopiad ja lubada isikutel, kellele see tarkvara kuulub
mis on ette nähtud järgmistel tingimustel:
Ülaltoodud autoriõiguse teatis ja see loataotlus peavad olema lisatud kõigisse
tarkvara koopiad või olulised osad.
TARKVARA OSUTATAKSE "SEISAKS, MIS ON", MISTE MISTE NING VÄLISTE VÕI GARANTIIDEGA
KAUDSED, SEALHULGAS, KUID Piiramata turukõlblikkuse garantiidega,
KONKREETSEKS EESMÄRGIS SÕLMIMINE JA RIKKUMISE KORRALDAMINE. Ühelgi juhul ei tohi
AUTORID VÕI Autoriõiguse omanikud vastutavad mis tahes nõude, kahju või muu eest
VASTUTUS LEPINGU, KAASAMISE VÕI MUUDE TEGEVUSEGA, MIS TULENEVAD,
TARKVARA VÕI KASUTAMISE VÕI MUUDE TEHINGUTEGA SEOTUD VÕI SEOSES
TARKVARA.

README.md (valikuline)

Looge selle ilusa veebisaidiga märgistusfail, laadige see alla ja pange see oma kataloogi.

Laadige oma pakett üles PyPi-sse

Nüüd on jõudnud viimane samm: projekti üleslaadimine PyPi-sse. Esiteks avage käsuviip ja liikuge kausta, kus asuvad kõik failid ja pakett:

cd "C: // PATH // TO // // YOUR // FOLDER"

Nüüd loome allikajaotuse järgmise käsuga:

python setup.py sdist

Võite saada hoiatuse, mis ütleb: „Tundmatu levitamisvalik:“ install_requires ”. Lihtsalt ignoreeri seda.

Üleslaadimiseks vajame nööri, nii et kõigepealt paigaldage nöör pipi kaudu:

pip paigaldage nöör

Seejärel käivitage järgmine käsk:

nööri üleslaadimine dist / *

Teil palutakse sisestada oma kasutajanimi ja parool. Esitage mandaadid, mida kasutasite varem PyPi-s registreerimiseks.

Palju õnne, teie pakett on nüüd üles laaditud! Oma paketi veebis vaatamiseks külastage lehte https://pypi.org/project/YOURPACKAGENAME/!

Paigaldage oma pakett pipi abil

Olgu, proovime seda nüüd proovida. Avage konsool ja tippige järgmine käsk:

pip installima YOURPACKAGENAME

See töötab! Nüüd avage python SHELL / IDLE ja importige oma pakett.

Muutke oma paketti

Kui hooldate oma paketti hästi, peate aeg-ajalt muutma lähtekoodi vormi. See on lihtne. Laadige lihtsalt uus kood githubisse üles, looge uus väljaanne ja kohandage seejärel setup.py-faili (uus download_url - vastavalt teie uuele väljalaskesildile, uus versioon), seejärel käivitage uuesti setup.py ja käsk twin (liikuge oma esmalt kaust!)

python setup.py sdist
nööri üleslaadimine dist / *

Lõpuks värskendage oma paketti pipi kaudu, et näha, kas teie muudatused toimisid:

pip install YOURPACKAGE --uuendus