На прошлой неделе Python Frederick Встреча, я разговаривал на упаковке Python. Моя цель состояла в том, чтобы покрыть, как работает упаковка и как построить базовый пакет. В течение разговора мы использовали пару инструментов, которые, как я думаю, имеет решающее значение для выпуска пакета Python в Pypi. Я опишу эти инструменты и почему я думаю, что они критически .
токс
Tox это фантастический инструмент для Тестирование упаковки Отказ С Tox
Команда, разработчик может создать пакет, установить его в виртуальную среду для определенной версии Python и запустить пакет через свой тестовый набор.
Краткая версия Whing Tox выглядит как:
$ tox -e py36
Эта команда запускает тестовый люкс пакета против Python 3.6. Я люблю это, когда команды это элегантны. Чтобы сделать это возможным, разработчик должен сказать TOX, как запустить тестовый набор. Эта конфигурация выполняется в Tox.ini
файл. Минимальный файл может выглядеть так:
[tox] envlist = py36 [testenv] commands = python -m unittest discover \ -s {envsitepackagesdir}/whirlygig
В этом примере вы бы изменили Whirlygig
на имя вашего проекта. Этого достаточно информации для информирования TOX о том, как запустить ваш тестовый люкс.
Я обнаруживаю, что использование TOX спасает меня от упорных, чтобы поймать упаковочные ошибки (вы знаете, что существуют?) И вообще потрясающе для тестирования против нескольких версий Python.
шпагат
шпагат является критическим инструментом в панели инструментов Packager по одной причине: Это давайте загрузим на Pypi через HTTPS Отказ Напротив, Python Setup.py Загрузить
Использует небезопасный HTTP для многих версий Python.
Несмотря на то, что он кажется глупым, вам нужен отдельный пакет надежно загрузки через HTTPS. Я предполагаю, что есть веские причины для этого требования, о которой я не знаю.
python setup.py sdist bdist_wheel
создает Dist
каталог с пакетами для загрузки. Вы можете выполнить вашу загрузку с помощью:
$ twine upload dist/*
Резюме
Экосистема Python имеет отличную документацию о упаковке на Руководство пользователя Python упаковка Отказ Этот пост должен был быть нежным введением в пару очень ценных инструментов, когда вы хотите работать с пакетами.
(Да, я знаю, что «пакет» технически называется «распределением» в правильном Python Lingo, но я использовал термин, так как он более широко принимается среди многих языков программирования.)
Эта статья впервые появилась на mattlayman.com Отказ
Оригинал: “https://dev.to/mblayman/2-critical-python-packaging-tools-blg”