de Marco Massenzio

Cum să publicați propriul pachet Python pe PyPi

Cum sa publicati propriul pachet Python pe PyPi
Python este unul dintre cele mai puternice, dar prietenoase limbaje de programare de astăzi.

Doriți să partajați codul dvs. Python cu alți dezvoltatori? Doriți să vă ușurați viața utilizatorilor atunci când instalați pachetul? Apoi, ar trebui să publicați pachetele Python în PyPi.

Vestea bună este că acum este mai ușor ca niciodată. Acesta este un scurt ghid care vă va ghida prin proces și vă va îndrepta către documentația relevantă pe parcurs.

Pasul 1: Creați un fișier setup.py

Argumentele pentru înființat() sunt documentate aici și sunt non-banale. Un bun exemplu de urmat este al meu filecrypt proiectului setup.py fişier.

Mai jos este un scurt extras. Din nou, asigurați-vă că citiți documentația pentru mai multe informații despre acest lucru, deoarece explică ce înseamnă toate aceste argumente mult mai bine decât aș putea, chiar și cu un articol mediu complet pentru a face acest lucru:

setup(name="crytto",      description='An OpenSSL-based file encryption                    and decryption utility',      long_description=long_description,      version='0.2.0',      url="https://github.com/massenz/filecrypt",      author="M. Massenzio",      author_email="marco@alertavert.com",      license="Apache2",      classifiers=[          'Development Status :: 4 - Beta',          'Intended Audience :: System Administrators',          'License :: OSI Approved :: Apache Software License',          'Programming Language :: Python :: 3'      ],      packages=['crytto'],      install_requires=[          'PyYAML>=3.11',          'sh>=1.11'      ],      entry_points={          'console_scripts': [              'encrypt=crytto.main:run'          ]      })

Notă: Do nu confundați setuptools cu distutils – iată importul corect pentru setup.py:

from setuptools import setup

Cea mai dificilă parte este de a afla numele pachetelor și configurația corectă pentru fișiere script. Probabil că este mai bine să le decideți în avans, dar le puteți oricând corecta în timp ce creați setup.py.

Cea mai mare provocare este de a veni cu un nume de pachet de nivel superior care să nu intre în conflict cu unul existent. Din câte îmi dau seama, în prezent este în mare parte un proces de încercare-eroare.

Odată ce setup.py este într-o formă decentă, puteți încerca să construiți o roată:

python setup.py bdist_wheel

După ce faceți acest lucru, este o bună practică să creați un nou virtualenv și să încercați să instalați noul pachet în acela:

virtualenv test_env./test_env/bin/activatepip install dist/my-project.whl

Acest lucru este util în special pentru a testa dacă console_scripts au fost corect configurate.

Dacă folosești clasificatori ca în:

classifiers=[     'Development Status :: 4 - Beta',     'Intended Audience :: System Administrators',     'License :: OSI Approved :: Apache Software License',    'Programming Language :: Python :: 3']

… apoi asigurați-vă că consultați lista clasificatorilor, deoarece orice altceva va cauza o eroare și va împiedica înregistrarea.

Înregistrați-vă proiectul

1611507365 849 Cum sa publicati propriul pachet Python pe PyPi

Notă: Documentația mi-a spus să folosesc sfoară pentru acest pas, dar nu a funcționat pentru mine. Kilometrajul dvs. poate varia.

Dacă nu aveți deja un cont pe PyPi, va trebui creeaza una, apoi conectați-vă.

Puteți apoi să vă îndreptați către formular de înregistrare și încărcați PKG_INFO fişier. Acest lucru a fost creat într-un [prj name].egg-info / director. Este posibil să dureze puțin înainte și înapoi, în timp ce încercați să-i liniștiți pe Zeii PyPi pentru a vă accepta opțiunile de configurare.

În special, venirea cu un nume de pachet neconflictiv, dar semnificativ, poate necesita mai multe încercări decât v-ați aștepta. Din nou, vă recomand să planificați, deoarece nu am reușit să găsesc o modalitate ușoară de listare toate numele pachetelor. Dacă știți unul, asigurați-vă că lăsați un comentariu. Veți observa că, conform PyPi …

There are currently 88906 packages here.

(„Aici” fiind PyPi, începând cu 16 septembrie 2016).

Încărcați în PyPi

Odată ce înregistrarea reușește, încărcarea reală este destul de ușoară, folosind sfoară:

twine upload dist/*

Cu condiția să aveți un ~ / .pypirc valid, acesta vă va cere doar parola. Atunci trebuie doar să:

$ cat ~/.pypirc [distutils] index-servers=pypi
[pypi] repository = https://upload.pypi.org/legacy/ username = [your username]

Asta e. Bucurați-vă de construirea și partajarea pachetelor dvs. Python!

Am publicat inițial acest lucru pe blogul meu la codetrips.com.