Pull to refresh

Управление пакетами Python при помощи easy_install

Reading time 3 min
Views 80K
Инструмент easy_install является модулем набора расширений к distutils языка Python — setuptools. Согласно официальной документации «Easy Install — это модуль Python (easy_install), идущий в комплекте библиотеки setuptools, которая позволяет автоматически загружать, собирать, устанавливать и управлять пакетами языка Python». Пакеты носят название «eggs» и имеют расширение .egg. Как правило, эти пакеты распространяются в формате архива ZIP.

Использование easy_install


Для начала установим пакет setuptools для Python версии 2.7:
$ wget pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
$ sudo sh setuptools-0.6c11-py2.7.egg


Теперь можно установить любой пакет, находящийся в центральном репозитарии модулей языка Python, который называется PyPI (Python Package Index): pypi.python.org/pypi. Работа с easy_install напоминает работу с пакетными менеджерами apt-get, rpm, yum и подобными. Для примера установим пакет, содержащий оболочку IPython:
sudo easy_install ipython
В качестве аргумента указывается либо имя пакета, либо путь до пакета .egg, находящегося на диске. Обратите внимание, что для выполнения установки требуются права суперпользователя, так как easy_install установлен и сам устанавливает пакеты в глобальный для Python каталог site-packages. Установка easy_install в домашнюю директорию производится следующим образом: sh setuptools-0.6c11-py2.7.egg --prefix=~

Поиск пакета на веб-странице:
easy_install -f code.google.com/p/liten liten
Первый аргумент в данном примере — это на какой странице искать, второй — что искать.
Также предусмотрена возможность HTTP Basic аутентификации на сайтах:
easy_install -f user:password@example.com/path/

Установка архива с исходными кодами по указанному URL:
easy_install liten.googlecode.com/files/liten-0.1.5.tar.gz
В качестве аргумента достаточно передать адрес архива, а easy_install автоматически распознает архив и установит дистрибутив. Чтобы этот способ сработал, в корневом каталоге архива должен находиться файл setup.py.

Для обновления пакета используется ключ --upgrade:
easy_install --upgrade PyProtocols

Также easy_install может немного облегчить установку распакованного дистрибутива c исходными кодами. Вместо последовательности команд python setup.py install достаточно просто ввести easy_install, находясь в каталоге с исходниками.

Изменение активной версии установленного пакета:
easy_install liten=0.1.3
В данном случае производится откат пакета liten до версии 0.1.3.

Преобразование отдельного файла .py в пакет .egg

easy_install -f "http://some.example.com/downloads/foo.py#egg=foo-1.0" foo
Это полезно, когда, например, необходимо обеспечить доступ к отдельному файлу из любой точки файловой системы. Как вариант, можно добавить путь к файлу в переменную PYTHONPATH. В этом примере #egg=foo-1.0 — это версия пакета, а foo — это его имя.

Использование конфигурационных файлов

Для опытных пользователей и администраторов предусмотрена возможность создания конфигурационных файлов. Значения параметров по умолчанию можно задать в конфигурационном файле, который имеет формат ini-файла. easy_install осуществляет поиск конфигурационного файла в следующем порядке: текущий_каталог/setup.cfg, ~/.pydistutils.cfg и в файле distutils.cfg, в каталоге пакета distutils.
Пример такого файла:
[easy_install]

# где искать пакеты
find_links = code.example.com/downloads

# ограничить поиск по доменам
allow_hosts = *.example.com

# куда устанавливать пакеты (каталог должен находиться в переменной окружения PYTHONPATH)
install_dir = /src/lib/python

Используемые источники:
peak.telecommunity.com/DevCenter/EasyInstall — официальная документация
«Python в системном администрировании UNIX и Linux», Ноа Гифт и Джереми М. Джонс
Tags:
Hubs:
+24
Comments 28
Comments Comments 28

Articles