Начало работы с setuptools и setup.py
Оригинал статьи Andrew Carter: Getting Started With setuptools and setup.py от 11-2009.
Статья очень сильно устарела, однако некоторые моменты можно использовать для ознакомления.
setuptools - это богатая и сложная программа. В этом руководстве основное внимание уделяется минимальным основам, необходимым для запуска средств настройки, чтобы вы могли:
Зарегистрировать свой пакет на pypi.
Собрать egg, исходный код и "распространяемые файлы" оконной программы установки.
Загрузить эти «распространяемые файлы» в pypi.
Установка setuptools и easy_install
Чтобы установить инструменты настройки, посетите http://pypi.python.org/pypi/setuptools и следуйте инструкциям для своей операционной системы. Кроме того, посетите http://peak.telecommunity.com/DevCenter/EasyInstall, чтобы получить дополнительные инструкции по установке инструментов настройки.
В настоящее время (по состоянию на ноябрь 2009 г.) setuptools довольно просто установить для Python версий 2.3–2.6.
Инструменты настройки начальной загрузки
Если у вас возникли проблемы с настройкой инструментов настройки для вашей платформы, вы можете проверить сценарий «bootstrap» setuptools по адресу http://peak.telecommunity.com/dist/ez_setup.py.
Вы можете запустить это так:
$ 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-upload, - включить текстовый файл README, в которой описание вашего кода. Это будет видно, когда кто-то, скажем, клонирует ваше репо.
Используя простую функцию read, ее легко включить в ключевое слово long_description для функции setuptools.setup ().
Классификаторы
Действительно хороший веб-сайт - http://pypi.python.org/pypi?%3Aaction=list_classifiers, на котором перечислены все классификаторы, которые вы можете использовать в вызове установки.
Пример этого веб-сайта:
Использование setup.py
Основное использование setup.py:
Чтобы увидеть все команды, введите:
Intermezzo: файл .pypirc и gpg
Чтобы взаимодействовать с pypi, вам сначала необходимо настроить учетную запись. Перейдите на http://pypi.python.org/pypi и нажмите Register.
Теперь, после регистрации, когда вы запускаете команды setup.py, которые взаимодействуют с pypi, вам нужно будет каждый раз вводить свое имя пользователя и пароль.
Чтобы обойти это, поместите файл .pypirc в свой каталог $HOME в Linux. В Windows вам необходимо установить переменную окружения HOME, чтобы она указывала на каталог, в котором находится этот файл.
Структура файла .pypirc довольно проста:
Вероятно, в этом файле есть ваш простой текстовый пароль, но я не знаю решения и не изучал его.
Кроме того, вы часто хотите подписать файлы, используя шифрование gpg. Посетите http://www.gnupg.org/ в Linux или http://www.gpg4win.org/ в Windows, чтобы установить это программное обеспечение.
Регистрация вашего проекта
С вашими setup.py и .pypirc зарегистрировать проект довольно просто. Просто введите:
Я бы сказал больше, но это так просто.
Загрузка вашего проекта
Мы будем использовать три основных команды setup.py:
bdist_egg: создает файл egg. Это то, что необходимо, чтобы кто-нибудь мог использовать
easy_install your_project.bdist_wininst: это создаст
.exe, который установит ваш проект на машине Windows.sdist: это создает дистрибутив с исходным кодом, который кто-то может напрямую загрузить и запустить
python setup.py.
Ключевым моментом здесь является то, что вам нужно запускать эти команды с той версией python, которую вы хотите поддерживать. Мы расскажем об этом в разделе «Собираем все вместе с полным сценарием Windows» ниже.
Вы можете запускать эти команды сами по себе и просто создавать файлы, но не загружать их. Однако в этом проекте мы всегда объединяем эти команды с директивой upload, которая будет создавать и выгружать необходимые файлы.
Собираем все вместе с полным скриптом Windows
Этот проект был построен на машине с Windows. Чтобы лучше понять, как все это работает, и другие параметры, используемые при использовании setup.py, давайте просто посмотрим на файл .bat, который я использую для создания пакета и загрузки его в pypi:
Для Linux это были бы почти те же команды, просто меняя каталоги, чтобы указывать на правильные версии python.
Я использую set HOME = C:\Users\Owner\ вместо установки переменной окружения в Windows
Last updated