Хабрахабр

[Перевод] Как опубликовать консольную утилиту на PyPI за 1 минуту

Ну правда, что может быть лучше, чем сделать её доступной через pip install? Разработав консольную утилиту, вы решаетесь опубликовать её на PyPI. Погуглив, что для этого надо, вы, возможно, наткнётесь на единственный найденный мной пост по теме, который мало того что от 2014 года, так ещё и требует от вас создать кучу папок и файлов для совершенно ненужных (вам) вещей.

Я уже задавался этим вопросом и поэтому, прочитав тонну документации, создал для вас этот туториал. Как же решить эту задачу без лишней головной боли в 2019 году? Вот пошаговая инструкция.

Создайте аккаунт на PyPI (ссылка для регистрации) 1.

Создайте точку входа в приложение (например, файл entry.py со следующим содержимым) 2.

def main(): print("It's alive!")

Установите poetry 3.

curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
source $HOME/.poetry/env

перев.) (poetry можно установить и по-другому, например, pip install --user poetry — прим.

Создайте окружение 4.

cd myproject # Перейдите в папку проекта, который будем паковать
poetry init

Настройте консольную команду (для этого добавьте следующие строки в появившийся файл pyproject.toml) 5.

[tool.poetry.scripts]
APPLICATION-NAME = 'entry:main'

APPLICATION-NAME надо поменять на имя консольной команды.

Опубликуйте утилиту! 6. (используйте имя пользователя и пароль из шага 1)

poetry publish --username PYPI_USERNAME --password PYPI_PASS --build

Теперь другому человеку для установки достаточно всего двух команд: Готово!

$ sudo pip install PROJECT-NAME
$ APPLICATION-NAME

Где PROJECT-NAME — это имя, которое вы дали проекту на шаге 4, а APPLICATION-NAME это имя команды из шага 5.

Обновление версии

Всякий раз, когда вы хотите обновить модуль, просто измените номер версии в файле pyproject.toml:

version = "0.1.0"

И повторите шаг 6:

poetry publish --username PYPI_USERNAME --password PYPI_PASS --build

Бонус: настраиваем Travis для авто-публикации

Добавьте следующие строки в файл .travis.yml

language: python
dist: xenial
before_install: - curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python - source $HOME/.poetry/env
install: - poetry install
script: - poetry build
deploy: - provider: script skip_cleanup: true script: poetry publish --username $PYPI_USER --password $PYPI_PASS on: branch: master python: '3.7' tags: true

После этого можно будет публиковать пакет с помощью команд: И установите переменные окружения PYPI_USER и PYPI_PASS на travis-ci.com.

git tag -a v1.2 # Replace version number with yours
git push --tags

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть