Начало работы с setuptools и setup.py

Оригинал статьи Andrew Carter: Getting Started With setuptools and setup.pyarrow-up-right от 11-2009.

triangle-exclamation

setuptools - это богатая и сложная программа. В этом руководстве основное внимание уделяется минимальным основам, необходимым для запуска средств настройки, чтобы вы могли:

  • Зарегистрировать свой пакет на pypi.

  • Собрать egg, исходный код и "распространяемые файлы" оконной программы установки.

  • Загрузить эти «распространяемые файлы» в pypi.

Установка setuptools и easy_install

Чтобы установить инструменты настройки, посетите http://pypi.python.org/pypi/setuptoolsarrow-up-right и следуйте инструкциям для своей операционной системы. Кроме того, посетите http://peak.telecommunity.com/DevCenter/EasyInstallarrow-up-right, чтобы получить дополнительные инструкции по установке инструментов настройки.

В настоящее время (по состоянию на ноябрь 2009 г.) setuptools довольно просто установить для Python версий 2.3–2.6.

Инструменты настройки начальной загрузки

Если у вас возникли проблемы с настройкой инструментов настройки для вашей платформы, вы можете проверить сценарий «bootstrap» setuptools по адресу http://peak.telecommunity.com/dist/ez_setup.pyarrow-up-right.

Вы можете запустить это так:

$ python ez_setup.py

и он установит setuptools для любой версии Python. Например, в Windows:

$ C:\Python24\python.exe ez_setup.py

установит setuptools для вашего дистрибутива python24.

Настройка setup.py

Все функции, которые могут быть включены в файл setup.py, выходят за рамки этого простого руководства. Я просто сосредоточусь на очень простом и распространенном формате, необходимом для переноса этого проекта на pypi.

Содержимое setup.py - это чистый Python:

Структура каталога

Структура каталога пока должна выглядеть так:

README

Хорошая идея, украденная с http://pypi.python.org/pypi/Sphinx-PyPI-uploadarrow-up-right, - включить текстовый файл README, в которой описание вашего кода. Это будет видно, когда кто-то, скажем, клонирует ваше репо.

Используя простую функцию read, ее легко включить в ключевое слово long_description для функции setuptools.setup ().

Классификаторы

Действительно хороший веб-сайт - http://pypi.python.org/pypi?%3Aaction=list_classifiersarrow-up-right, на котором перечислены все классификаторы, которые вы можете использовать в вызове установки.

Пример этого веб-сайта:

Использование setup.py

Основное использование setup.py:

Чтобы увидеть все команды, введите:

Intermezzo: файл .pypirc и gpg

Чтобы взаимодействовать с pypi, вам сначала необходимо настроить учетную запись. Перейдите на http://pypi.python.org/pypiarrow-up-right и нажмите Register.

Теперь, после регистрации, когда вы запускаете команды setup.py, которые взаимодействуют с pypi, вам нужно будет каждый раз вводить свое имя пользователя и пароль.

Чтобы обойти это, поместите файл .pypirc в свой каталог $HOME в Linux. В Windows вам необходимо установить переменную окружения HOME, чтобы она указывала на каталог, в котором находится этот файл.

Структура файла .pypirc довольно проста:

circle-info

Вероятно, в этом файле есть ваш простой текстовый пароль, но я не знаю решения и не изучал его.

Кроме того, вы часто хотите подписать файлы, используя шифрование gpg. Посетите http://www.gnupg.org/arrow-up-right в Linux или http://www.gpg4win.org/arrow-up-right в Windows, чтобы установить это программное обеспечение.

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

С вашими setup.py и .pypirc зарегистрировать проект довольно просто. Просто введите:

Я бы сказал больше, но это так просто.

Загрузка вашего проекта

Мы будем использовать три основных команды setup.py:

  • bdist_egg: создает файл egg. Это то, что необходимо, чтобы кто-нибудь мог использовать easy_install your_project.

  • bdist_wininst: это создаст .exe, который установит ваш проект на машине Windows.

  • sdist: это создает дистрибутив с исходным кодом, который кто-то может напрямую загрузить и запустить python setup.py.

circle-info

Ключевым моментом здесь является то, что вам нужно запускать эти команды с той версией python, которую вы хотите поддерживать. Мы расскажем об этом в разделе «Собираем все вместе с полным сценарием Windows» ниже.

Вы можете запускать эти команды сами по себе и просто создавать файлы, но не загружать их. Однако в этом проекте мы всегда объединяем эти команды с директивой upload, которая будет создавать и выгружать необходимые файлы.

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

Этот проект был построен на машине с Windows. Чтобы лучше понять, как все это работает, и другие параметры, используемые при использовании setup.py, давайте просто посмотрим на файл .bat, который я использую для создания пакета и загрузки его в pypi:

Для Linux это были бы почти те же команды, просто меняя каталоги, чтобы указывать на правильные версии python.

circle-info

Я использую set HOME = C:\Users\Owner\ вместо установки переменной окружения в Windows

Last updated