PyPI (абревіатура від англ. Python Package Index — «каталог пакетів Python») — каталог програмного забезпечення, написаного на мові програмування Python. У поєднанні з системами управління бібліотечними пакетами (pip
, easy_install
) аналогічні PEAR для PHP і CPAN для Perl. За даними лічильника на головній сторінці в липні 2014 містив дані про більш ніж 46000 пакетів, тоді як в 2010 році пакетів було всього близько 10000.
Реєстрація в каталозі
Автори самі реєструють в каталозі свої пакети (перший раз їм необхідно надати дані і про себе) на PyPI :
python setup.py register
Метадані зазвичай зберігаються в файлі setup.py в складі приготованого до поширення пакета, а завантаження пакета здійснюється однією командою :
python setup.py sdist—format=zip,gztar upload
Необхідні для реєстрації метадані зафіксовані в PEP241 (пропозиції щодо розвитку Python), прийняті в 2001 році. Обов'язковими є: версія метаданих, назва пакета, версія пакета, платформа (платформи), короткий опис, адреса електронної пошти автора, ліцензія.
Крім того, пакет може бути класифікований за допомогою одного або декількох класифікаторів.
Системи управління бібліотечними пакетами
Модуль distutils
із стандартної біблиотеки Python:
- Надає основу для стандартних полів метаданих пакета
- Містить набір утиліт для зборки пакета і створення архіву для поширення або установника (для Windows)
Можливості distutils
обмежуються рамками одного пакета, він не має можливості визначати залежності.
Система управління пакетами setuptools
, заснована на модулі distutils
, реалізує найпростішу систему відстеження залежностей, займається завантаженням пакетів і взаємодією з PyPI. Пакет setuptools
вміє автоматично завантажувати і встановлювати залежності пакета.
Утиліта easy_install є доповнення до setuptools
, та встановлює їх в процесі своєї установки.
Від проекту setuptools
відділився пакет Distribute, який активно розвиває та підтримує Python 3.
Мається на увазі, що в розроблюваний нині на основі distutils
та Distribute
пакет distutils2
ввійде в стандартну бібліотеку Python. При цьому буде збережена сумісність зі старим distutils
.
Утиліта pip є аналогом easy_install.
Приклад
Наступний приклад запозичений з файлу setup.py пакета webpy-celery і являє собою опис метаданих, що відносяться до пакету:
setup( name='webpy-celery', version=__version__, url='http://github.com/faruken/webpy-celery', license='BSD', author='Faruk Akgul', author_email='me@akgul.org', description='Celery wrapper for web.py framework', long_description=__doc__, zip_safe=False, packages=find_packages(exclude=['examples', 'tests']), platforms='any', install_requires=[ 'web.py>=0.34', 'celery>=2.3.0', ], classifiers=[ 'Environment:: Web Environment', 'Intended Audience:: Developers', 'License:: OSI Approved:: BSD License', 'Operating System:: OS Independent', 'Programming Language:: Python', 'Programming Language:: Python:: 2.5', 'Programming Language:: Python:: 2.6', 'Programming Language:: Python:: 2.7', 'Topic:: Internet:: WWW/HTTP:: Dynamic Content', 'Topic:: Software Development:: Libraries:: Python Modules', ], )
Використання каталога
Як вказано на сайті PyPI, скористатися каталогом можна за допомогою команди pip (за умови, що вона попередньо встановлена):
pip install назва_пакета
Або ж просто знайти, завантажити, розпакувати, а потім запуском файлу setup.py встановити потрібний пакет:
python setup.py install
В обох випадках будуть автоматично знайдені і встановлені всі залежності для інсталяції. Те ж саме можна здійснити і за допомогою інших утиліт, наприклад easy_install
.
Безпека
Каталог PyPI слугує джерелом інформації для систем оновлення програмного забезпечення на Python, що неминуче ставить питання забезпечення інформаційної безпеки. Система управління бібліотеками Python дозволяє не довіряючим один одному (англ. mutually distrustful) розробникам робити свої бібліотеки доступними для користувачів. На сьогоднішній день в PyPI відсутній механізм захисту виявлення оновлень (англ. update discovery) та процесу інсталяції, але існує TUF (англ. The Update Framework) — прототип каркаса для безпечної роботи з PyPI за допомогою утиліти easy_install
.
Зноски
- . Jeremy Hylton: weblog (англ.). 24 вересня 2003. Архів оригіналу за 19 вересня 2015. Процитовано 30 травня 2017.
- . Архів оригіналу за 8 серпня 2020. Процитовано 30 травня 2017.
- . Архів оригіналу за 15 квітня 2018. Процитовано 30 травня 2017.
- . Архів оригіналу за 9 червня 2017. Процитовано 30 травня 2017.
- Barry, 2010, с. 48.
- Alchin, 2010, с. 241—242.
- PEP 241 — Metadata for Python Software Packages [ 8 липня 2017 у Wayback Machine.]. Python.org
- . Архів оригіналу за 25 жовтня 2012. Процитовано 30 травня 2017.
- Ziadé, 2009, с. 21—23.
- . Архів оригіналу за 29 січня 2014. Процитовано 30 травня 2017.
- . Архів оригіналу за 24 липня 2014. Процитовано 30 травня 2017.
- . Архів оригіналу за 21 червня 2017. Процитовано 30 травня 2017.
- . Архів оригіналу за 2 червня 2017. Процитовано 30 травня 2017.
- Samuel та ін., 2010.
- Securing Python Package Management. TUF: The Update Framework (англ.). Архів оригіналу за 17 грудня 2012. Процитовано 30 травня 2017.
Література
- Barry, Paul (2010). Head First Python. O'Reilly Media, Inc. ISBN .
- Alchin, Marty (2010). Pro Python. Apress. ISBN .
- Hussain, Zahid (2011). Proceedings of the Fall 2010 Future SOC Lab Day. Technische Berichte des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam. Universitätsverlag Potsdam (42). ISBN .
- Samuel, Justin; Mathewson, Nick; Cappos, Justin; Dingledine, Roger (2010). Survivable key compromise in software update systems. ACM Press. с. 61. doi:10.1145/1866307.1866315. ISBN . Процитовано 31 травня 2017.
- Ziadé, Tarek (2009). Expert Python programming: learn best practices to designing, coding, and distributing your Python software. From technologies to solutions (вид. 1. reprint). Birmingham: Packt Publ. ISBN .
- Martelli, Alex (2006). Python in a Nutshell. O'Reilly Media, Inc. ISBN .
- Lutz, Mark (2006). Programming Python. Т. 10 (вид. 3). O'Reilly Media, Inc. ISBN .
- Ramalho, Luciano (2015). Fluent Python. O'Reilly Media, Inc. ISBN .
Див. також
Посилання
- pypi.python.org [ 8 вересня 2008 у Wayback Machine.]
- Офіційний сайт
- Warehouse (Beta) [ 3 червня 2017 у Wayback Machine.] pre-production deployment of future PyPi web.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
PyPI abreviatura vid angl Python Package Index katalog paketiv Python katalog programnogo zabezpechennya napisanogo na movi programuvannya Python U poyednanni z sistemami upravlinnya bibliotechnimi paketami a href wiki Pip class mw redirect title Pip pip a easy install analogichni PEAR dlya PHP i CPAN dlya Perl Za danimi lichilnika na golovnij storinci v lipni 2014 mistiv dani pro bilsh nizh 46000 paketiv todi yak v 2010 roci paketiv bulo vsogo blizko 10000 Reyestraciya v kataloziAvtori sami reyestruyut v katalozi svoyi paketi pershij raz yim neobhidno nadati dani i pro sebe na PyPI python setup py register Metadani zazvichaj zberigayutsya v fajli setup py v skladi prigotovanogo do poshirennya paketa a zavantazhennya paketa zdijsnyuyetsya odniyeyu komandoyu python setup py sdist format zip gztar upload Neobhidni dlya reyestraciyi metadani zafiksovani v PEP241 propoziciyi shodo rozvitku Python prijnyati v 2001 roci Obov yazkovimi ye versiya metadanih nazva paketa versiya paketa platforma platformi korotkij opis adresa elektronnoyi poshti avtora licenziya Krim togo paket mozhe buti klasifikovanij za dopomogoyu odnogo abo dekilkoh klasifikatoriv Sistemi upravlinnya bibliotechnimi paketamiModul distutils iz standartnoyi biblioteki Python Nadaye osnovu dlya standartnih poliv metadanih paketa Mistit nabir utilit dlya zborki paketa i stvorennya arhivu dlya poshirennya abo ustanovnika dlya Windows Mozhlivosti distutils obmezhuyutsya ramkami odnogo paketa vin ne maye mozhlivosti viznachati zalezhnosti Sistema upravlinnya paketami setuptools zasnovana na moduli distutils realizuye najprostishu sistemu vidstezhennya zalezhnostej zajmayetsya zavantazhennyam paketiv i vzayemodiyeyu z PyPI Paket setuptools vmiye avtomatichno zavantazhuvati i vstanovlyuvati zalezhnosti paketa Utilita easy install ye dopovnennya do setuptools ta vstanovlyuye yih v procesi svoyeyi ustanovki Vid proektu setuptools viddilivsya paket Distribute yakij aktivno rozvivaye ta pidtrimuye Python 3 Mayetsya na uvazi sho v rozroblyuvanij nini na osnovi distutils ta Distribute paket distutils2 vvijde v standartnu biblioteku Python Pri comu bude zberezhena sumisnist zi starim distutils Utilita pip ye analogom easy install PrikladNastupnij priklad zapozichenij z fajlu setup py paketa webpy celery i yavlyaye soboyu opis metadanih sho vidnosyatsya do paketu setup name webpy celery version version url http github com faruken webpy celery license BSD author Faruk Akgul author email me akgul org description Celery wrapper for web py framework long description doc zip safe False packages find packages exclude examples tests platforms any install requires web py gt 0 34 celery gt 2 3 0 classifiers Environment Web Environment Intended Audience Developers License OSI Approved BSD License Operating System OS Independent Programming Language Python Programming Language Python 2 5 Programming Language Python 2 6 Programming Language Python 2 7 Topic Internet WWW HTTP Dynamic Content Topic Software Development Libraries Python Modules Vikoristannya katalogaYak vkazano na sajti PyPI skoristatisya katalogom mozhna za dopomogoyu komandi pip za umovi sho vona poperedno vstanovlena pip install nazva paketa Abo zh prosto znajti zavantazhiti rozpakuvati a potim zapuskom fajlu setup py vstanoviti potribnij paket python setup py install V oboh vipadkah budut avtomatichno znajdeni i vstanovleni vsi zalezhnosti dlya instalyaciyi Te zh same mozhna zdijsniti i za dopomogoyu inshih utilit napriklad easy install BezpekaKatalog PyPI sluguye dzherelom informaciyi dlya sistem onovlennya programnogo zabezpechennya na Python sho neminuche stavit pitannya zabezpechennya informacijnoyi bezpeki Sistema upravlinnya bibliotekami Python dozvolyaye ne doviryayuchim odin odnomu angl mutually distrustful rozrobnikam robiti svoyi biblioteki dostupnimi dlya koristuvachiv Na sogodnishnij den v PyPI vidsutnij mehanizm zahistu viyavlennya onovlen angl update discovery ta procesu instalyaciyi ale isnuye TUF angl The Update Framework prototip karkasa dlya bezpechnoyi roboti z PyPI za dopomogoyu utiliti easy install Znoski Jeremy Hylton weblog angl 24 veresnya 2003 Arhiv originalu za 19 veresnya 2015 Procitovano 30 travnya 2017 Arhiv originalu za 8 serpnya 2020 Procitovano 30 travnya 2017 Arhiv originalu za 15 kvitnya 2018 Procitovano 30 travnya 2017 Arhiv originalu za 9 chervnya 2017 Procitovano 30 travnya 2017 Barry 2010 s 48 Alchin 2010 s 241 242 PEP 241 Metadata for Python Software Packages 8 lipnya 2017 u Wayback Machine Python org Arhiv originalu za 25 zhovtnya 2012 Procitovano 30 travnya 2017 Ziade 2009 s 21 23 Arhiv originalu za 29 sichnya 2014 Procitovano 30 travnya 2017 Arhiv originalu za 24 lipnya 2014 Procitovano 30 travnya 2017 Arhiv originalu za 21 chervnya 2017 Procitovano 30 travnya 2017 Arhiv originalu za 2 chervnya 2017 Procitovano 30 travnya 2017 Samuel ta in 2010 Securing Python Package Management TUF The Update Framework angl Arhiv originalu za 17 grudnya 2012 Procitovano 30 travnya 2017 LiteraturaBarry Paul 2010 Head First Python O Reilly Media Inc ISBN 978 1 4493 8267 4 Alchin Marty 2010 Pro Python Apress ISBN 978 1 4302 2757 1 Hussain Zahid 2011 Proceedings of the Fall 2010 Future SOC Lab Day Technische Berichte des Hasso Plattner Instituts fur Softwaresystemtechnik an der Universitat Potsdam Universitatsverlag Potsdam 42 ISBN 978 3 86956 114 1 Samuel Justin Mathewson Nick Cappos Justin Dingledine Roger 2010 Survivable key compromise in software update systems ACM Press s 61 doi 10 1145 1866307 1866315 ISBN 978 1 4503 0245 6 Procitovano 31 travnya 2017 Ziade Tarek 2009 Expert Python programming learn best practices to designing coding and distributing your Python software From technologies to solutions vid 1 reprint Birmingham Packt Publ ISBN 978 1 84719 494 7 Martelli Alex 2006 Python in a Nutshell O Reilly Media Inc ISBN 9780596100469 Lutz Mark 2006 Programming Python T 10 vid 3 O Reilly Media Inc ISBN 9780596009250 Ramalho Luciano 2015 Fluent Python O Reilly Media Inc ISBN 9781491946268 Div takozhpip sistema keruvannya pakunkami Mova programuvannya Standart oformlennya koduPosilannyapypi python org 8 veresnya 2008 u Wayback Machine Oficijnij sajt Warehouse Beta 3 chervnya 2017 u Wayback Machine pre production deployment of future PyPi web