Python paketai
Paketo kūrimas¶
Mano Python paketus dažniausiai sudaro tokie failai:
setup.py
-
Pagrindinis paketo failas, kuriame aprašoma paketo meta informacija. Šio failo turinys atrodo taip:
from distutils.core import setup setup( name='mypkgname', version='0.1', author='My Name', author_email='my at mail.com', py_modules=['pkgmodule'], url='pkgurl', license='gpl.txt', description='pkg description', long_description=open('README.rst').read(), classifiers=[ 'Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', 'Programming Language :: Python :: 3', ] )
MANIFEST.in
-
Failas, kuriame nurodoma, kurie failai turi būti įtraukti į paketą. Pavyzdys:
include *.txt include *.rst include Makefile recursive-include src
Makefile
-
Failas, kuris paruošia aplinką darbui su šiuo paketu. Šis failas nieko bendro su Python paketais neturi, tačiau naudinga jį turėti.
README.rst
-
Išsamus aprašymas kaip paketas veikia, kam jis skirtas ir kaip juo naudotis.
gpl.txt
-
Licencijos failas. Pagal nutylėjimą, daugelio šalių įstatymai draudžia naudoti bet kokį autorinį kūrinį, jei nenurodyta, kaip ir kas galį kūrinį naudoti. Todėl, jei norite, kad kas nors galėtų pasinaudoti jūsų paketu, turite nurodyti jo naudojimo sąlygas.
Teisiškai galiojančias naudojimo sąlygas aprašyti yra gan sudėtinga, todėl saugiausias pasirinkimas GPL licencija.
Paketo kėlimas į PyPI¶
Kad užregistruotumėte savo Python paketą į PyPI paketų repozitoriją, atlikite šiuose veiksmus:
-
Užregistruokite naujo paketo (arba naujos seno paketo versijos) meta duomenis, aprašytus
setup.py
faile:python setup.py register -r pypi
-r pypi
reikia nurodyti tik tuo atveju, jei naudojate~/.pypirc
failą. Jei turite šį failą, tuometpypi
nurodo konfigūracijos sekciją, tame faile ([pypi]
). -
Įkelkite išeities teksto paketą į PyPI:
python setup.py sdist upload
-
Jei jūsų paketas turi dokumentaciją, įkelkite atnaujintą dokumentacijos versiją:
python setup.py build_sphinx upload_sphinx
PyPI per SSH¶
Rekomenduoju naudoti pypissh paketą, kuris leidžia susisiekti su PyPI serveriu per ssh, naudojant ssh raktus. Tokiu būdu nereikia atviru tekstu, konfigūraciniuose failuose saugoti PyPI slaptažodžio ir nereikia kiekvieną kartą įvedinėti slaptažodžio.
-
pypissh
paketą siūlau įsidiegti į kokį nors izoliuotą virtualenvą, nes jis mokeypatchina Python distutils paketą, kas gal būt gali sukelti kokių nors problemų į diegus į sistemą.pypissh
įdiegsite taip:pip -E /tmp/pypissh-env install pypissh source /tmp/pypissh-env/bin/activate
Įkelkite savo ssh raktą į PyPI, naudotojo profilio nustatymuose.
-
Toliau reikia susikurti PyPI konfigūracinė falą
~/.pypirc
, kurio turinys atrodo taip:[distutils] index-servers = pypi [pypi] repository: httpssh://submit@ssh.pypi.python.org/pypi username: yourusername password: pypissh
Nepamirškite
yourusername
pakeisti į savo PyPI naudotojo vardą, slaptažodis gali būti bet, koks (svarbu, ne tuščias). Jei slaptažodis nebus nurodytas, tada prašys jį įvesti.