PyPI

PyPI

PyPI (аббр. от англ. Python Package Index — «каталог пакетов Python») — каталог программного обеспечения, написанного на языке программирования Python[1]. В сочетании с системами управления библиотечными пакетами (pip, easy_install) аналогичен PEAR для PHP и CPAN для Perl[2]. По данным счётчика на главной странице в июле 2012 года содержал данные о более чем 22600 пакетах.

Содержание

Регистрация в каталоге

Авторы сами регистрируют в каталоге свои пакеты (первый раз им необходимо предоставить данные и о себе) на PyPI[3]:

python setup.py register

Метаданные обычно хранятся в файле setup.py в составе приготовленного к распространению пакета, а загрузка пакета осуществляется одной командой[4]:

python setup.py sdist --format=zip,gztar upload

Требуемые для регистрации метаданные зафиксированы в PEP241[5] (предложению по развитию Python), принятому в 2001 году. Обязательными являются: версия метаданных, название пакета, версия пакета, платформа (платформы), краткое описание, адрес электронной почты автора, лицензия.

Кроме того, пакет может быть классифицирован с помощью одного или нескольких классификаторов.

Системы управления библиотечными пакетами

Модуль distutils из стандартной библиотеки Python[6]:

  1. Предоставляет основу для стандартных полей метаданных пакета
  2. Содержит набор утилит для сборки пакета и создания архива для распространения или установщика (для Windows)

Возможности distutils ограничиваются рамками одного пакета, он не имеет возможности определять зависимости.

Система управления пакетами setuptools, основанная на модуле distutils, реализует простейшую систему отслеживания зависимостей, занимается загрузкой пакетов и взаимодействием с PyPI. Пакет setuptools умеет автоматически загружать и устанавливать зависимости пакета.

Утилита easy_install является дополнением к setuptools, и устанавливает их во время своей установки[7].

От проекта setuptools отделился пакет Distibute, который активно развивается и поддерживает Python 3[8].

Предполагается[9], что в разрабатываемый в настоящее время на основе distutils и Distribute пакет distutils2 войдёт в стандартную библиотеку Python. При этом будет сохранена совместимость со старым distutils[10].

Утилита pip является аналогом easy_install[11].

Пример

Следующий пример заимствован из файла 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.

Безопасность

Основной источник: [12]

Каталог PyPI служит источником информации для систем обновления программного обеспечения на Python, что неизбежно ставит вопрос обеспечения информационной безопасности. Система управления библиотеками Python позволяет недоверяющим друг другу (англ. mutually distrustful) разработчикам делать свои библиотеки доступными пользователям. В настоящее время в PyPI отсутствует механизм защиты обнаружения обновлений (англ. update discovery) и процесса установки, но существует TUF (англ. The Update Framework) — прототип каркаса для безопасной работы с PyPI посредством утилиты easy_install[13].

Примечания

Ссылки

Литература



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "PyPI" в других словарях:

  • PyPI — (de l anglais « Python Package Index ») est le dépôt tiers officiel du langage de programmation Python. Son objectif est de doter la communauté des développeurs Python d un catalogue complet recensant tous les paquets Python libres[1].… …   Wikipédia en Français

  • pypimas — pypi̇̀mas dkt. Gérvėms besiléidžiant pasigir̃sta tylùs kurksėjimas, jauni̇̀klių pypi̇̀mas …   Bendrinės lietuvių kalbos žodyno antraštynas

  • pypimas — pypìmas sm. (2) → 1 pypti. 1. K, NdŽ dūdavimas. 2. NdŽ paukščio cypimas, rėkimas: Jis puikiai pavaizduodavo nuskriausto kalakučiuko pypimą rš. 3. NdŽ prk. gėrimas …   Dictionary of the Lithuanian Language

  • Comparison of Tryton and Open ERP — Tryton is a community fork of the commercial open source project OpenERP and began development in November 2008. This article compares both projects from technical, business and conceptual perspectives. Subject Tryton OpenERP Language Python… …   Wikipedia

  • Mediaproxy — is an Open Source far end NAT traversal solution for OpenSER. By using Traversal Using Relay NAT protocol (TURN), MediaProxy behaves as a media relay allowing audio and video traffic (RTP streams) to bypass broadband routers without setting up… …   Wikipedia

  • Пайтон — Python Класс языка: функциональный, объектно ориентированный, императивный, аспектно ориентированный Тип исполнения: интерпретация байт кода, компиляция в MSIL, компиляция в байт код Java Появился в: 1990 г …   Википедия

  • Booktype — О программном обеспечении для создания книг и документации см. Электронная книга (документ). Booktype Тип Программное обеспечение для создания книг и документации Разработчик Sourcefabric Написана на Python …   Википедия

  • ZODB — Zope Object DataBase Тип Объектно ориентированная база данных Разработчик Zope Corporation и соавторы Написана на Python Операционная система Кроссплатформенное ПО Последняя версия 3.10.5 (19 ноября 2011 …   Википедия

  • MibianLib — Developer(s) Yassine Maaroufi Stable release 0.1.1 / 19 November 2011; 0 days ago (2011 11 19) Development status Active Written in …   Wikipedia

  • CPAN — CPAN, the Comprehensive Perl Archive Network, is an archive of nearly 100,000 modules of software written in Perl, as well as documentation for it.[1] It has a presence on the World Wide Web at www.cpan.org and is mirrored worldwide at more than… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»