четверг, 31 марта 2011 г.

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

В настоящее время Python обладает всеми необходимыми инструментами для манипулирования пакетами. О двух из них, являющиеся актуальными на данный момент и пойдет речь ниже. Cуществует также и третий инструмент Virtual Environments, который позволяет создавать изолированное окружение Python. Сочетание этих инструментов поможет найти, установить и удалить пакеты.

Distribute

Distribute это набор усовершенствований в стандартный модуль Python библиотеки Distutils (для Python 2.3.5 и на большинстве платформ, 64-битные платформы требуют минимум Python 2.4), он позволяет более легко создавать и распространять пакеты Python, особенно те, которые имеют зависимости от других пакетов. Distribute был создан как замена Setuptools, который больше не поддерживается.

Начиная с версии 0.6.2, Distribute поддерживает Python 3. Distribute в Python 3 работает точно также как и в Python 2, но Distribute имеет одну важную особенность, в процессе сборки проекта он подключает скрипт 2to3, что позволяет одновременно использовать как Python 2 так и Python 3 для своих проектов. Для этого необходимо параметр use_2to3 установить на True. См. packages.python.org/distribute для получения дополнительной информации.

Инструкция по установке

Distribute можно установить с помощью скрипта distribute_setup.py. Также с помощью easy_install, pip, архива с исходными кодами, или egg пакета. distribute_setup.py это самый простой и предпочтительный способ установки distribute на всех системах. Скачайте distribute_setup.py и запустите его, используя интерпретатор Python по вашему выбору. для nix систем:

$ wget http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py

PIP инсталлер для Python

pip является установщиком пакетов Python написанный Яном Бикингом. Он может устанавливать, выводить список установленных пакетов, обновлять и удалять пакеты. pip это замена для easy_install . Он использует в основном те же методы для поиска пакетов, поэтому пакеты, которые были сделаны easy_installable являются совместимыми и с Pip.

Установка Pip

Pip можно установить из архива с исходными кодами или с использованием easy_install. Установка из исходников является рекомендуемым способом установки. Последняя версия с исходными кодами могут быть получены из PyPI:

$ wget http://pypi.python.org/packages/source/p/pip/pip-0.6.3.tar.gz
$ tar xzf pip-0.6.3.tar.gz$ cd pip-0.6.3
$ python setup.py install

или с помощью easy_install:

$ easy_install pip

Установка пакета

Давайте установим пакет Markdown:

$ pip install Markdown

Markdown установлен, вы можете импортировать и использовать его:

$ python -c "import markdown; print markdown.markdown('**Excellent**')"

Листинг установленных пакетов

Чтобы получить список установленных пакетов и версий, используйте команду freeze:

$ pip freeze
Markdown==2.0.3
wsgiref==0.1.2

Установка определенных версий

Вы также можете указать определенную версию пакета, которую хотите установить, для этого используйте ==,> =,>, <, <=:

$ pip install 'Markdown<2.0'

При вводе данной команды pip найдет текущий установленный пакет Markdown 2.0.3, автоматически удалить его и установит Markdown 1,7 (последнюю версию ветки 1.x. Вы также можете объединять необходимую версии пакетов через запятую:

$ pip install 'Markdown>2.0,<2.0.3'

Обновление

Если вы хотите обновить пакет до последней доступной версии, используйте -U или --upgrade:

$ pip install -U Markdown

Удаление

Теперь удалите Markdown:

$ pip uninstall Markdown

После ввода команды, будут показаны какие файлы и каталоги будут удалены, с просьбой подтвердить удаление, затем pip удалит пакет Markdown.

3 комментария:

  1. не получается, выдаёт SyntaxError: invalid syntax
    что значит знак доллара в начале строчки?

    ОтветитьУдалить
    Ответы
    1. Это приглашение командной строки Linux/Unix.

      Как в Windows, например C:\>

      Т.е. когда Вы вводите команду, знак $ вводить не надо. это просто приглашение командной строки.

      Удалить
  2. Анонимный7 июня 2012 г., 11:38

    Значит что это *nix система

    ОтветитьУдалить