Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Сборка дистрибутива пакета с помощью Poetry Python: Настройка окружения

Когда ваш проект дорастет до того состояния, когда им можно будет с кем-то поделиться, наступит время собрать код. Собранный дистрибутив уже не потребует Poetry — программа запустится и без него.

На этом этапе нам снова поможет Poetry. В этом уроке мы разберемся, как собрать и установить дистрибутив.

Сборка и установка дистрибутива

Обычно poetry-проекты практически сразу пригодны к сборке их дистрибутивов. Есть некоторые особые случаи, требующие дополнительных действий по настройке. Но здесь мы не будем рассматривать их подробно — эти знания пригождаются достаточно редко.

Простой проект можно собрать командой poetry build:

poetry build

Building hello (0.1.0)
  - Building sdist
  - Built hello-0.1.0.tar.gz
  - Building wheel
  - Built hello-0.1.0-py3-none-any.whl

Выполним эту команду в корневой директории проекта. После этого там появится директория dist/ с двумя файлами с разными расширениями.

Сначала рассмотрим файл с расширением .whl — это сокращение от слова wheel («колесо»). Этот файл уже пригоден к установке с помощью pip. Установим его в окружение пользователя:

python3 -m pip install --user dist/hello-0.1.0-py3-none-any.whl

Processing ./dist/hello-0.1.0-py3-none-any.whl
Installing collected packages: hello
Successfully installed hello-0.1.0

Если для проекта описаны какие-то скрипты, то они будут доступны в виде команд. Например, так работает say-hello в нашем случае:

say-hello

Hello!

Установка пакета без сборки дистрибутива

Часто во время работы над кодом хочется быстро и без лишних усилий попробовать проект в деле.

Попробуем запустить программу без создания дистрибутива. Чтобы это сделать, укажем путь до директории проекта в качестве имени пакета в команде pip install:

python3 -m pip install .

Processing /.../hello
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Building wheels for collected packages: hello
  Building wheel for hello (PEP 517) ... done
  Created wheel for hello: filename=hello-0.1.0-py3-none-any.whl size=1671
...
Successfully built hello
Installing collected packages: hello
Successfully installed hello-0.1.0

say-hello

Hello!

В коде выше мы использовали . — напоминаем, что она означает текущую директорию.

Установка poetry-проектов из GitHub

Ранее в этом курсе мы уже говорили, что c помощью pip можно устанавливать пакеты напрямую из GitHub. Так вот, эта возможность доступна и для poetry-проектов. Для установки необходимо выполнить команду pip install git+ со ссылкой на репозиторий:

pip install git+https://github.com/<username>/<project-name>

Однако стоит иметь в виду, что pip относительно недавно научился понимать pyproject.toml. Поэтому советуем периодически обновлять pip с помощью команды pip install --user --upgrade pip.


Самостоятельная работа

  1. Соберите вашу версию проекта hello в whl-файл. Установите его в пользовательское окружение. Проверьте, что команда say-hello работает без ошибок
  2. Удалите установленный пакет с помощью команды pip uninstall hello
  3. Установите ваш проект из директории. Проверьте, что скрипт работает и при таком сценарии установки
  4. Удалите установленный пакет с помощью команды pip uninstall hello
  5. Если вам захочется, можете выложить код проекта на ваш GitHub и попробовать установить его с помощью pip прямо оттуда

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 28 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 28 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»