Introduction #
Poetry is a tool for dependency management and packaging in Python.
It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
Poetry offers a lockfile to ensure repeatable installs, and can build your project for distribution.
System requirements #
Poetry requires Python 3.9+. It is multi-platform and the goal is to make it work equally well
on Linux, macOS and Windows.
Installation #
Note
If you are viewing documentation for the development branch, you may wish to install a preview or development version of Poetry.
See the advanced installation instructions to use a preview or alternate version of Poetry.
pipx
is used to install Python CLI applications globally while still isolating them in virtual environments.
pipx
will manage upgrades and uninstalls when used to install Poetry.
-
Install pipx
If
pipx
is not already installed, you can follow any of the options in the
official pipx installation instructions.
Any non-ancient version ofpipx
will do. -
Install Poetry
-
Install Poetry (advanced)
Note
You can skip this step, if you simply want the latest version and already installed Poetry as described in the
previous step. This step details advanced usages of this installation method. For example, installing Poetry from
source, having multiple versions installed at the same time etc.pipx
can install different versions of Poetry, using the same syntax as pip:pipx install poetry==1.8.4
pipx
can also install versions of Poetry in parallel, which allows for easy testing of alternate or prerelease
versions. Each version is given a unique, user-specified suffix, which will be used to create a unique binary name:pipx install --suffix=@1.8.4 poetry==1.8.4 poetry@1.8.4 --version
pipx install --suffix=@preview --pip-args=--pre poetry poetry@preview --version
Finally,
pipx
can install any valid pip requirement spec, which
allows for installations of the development version fromgit
, or even for local testing of pull requests:pipx install --suffix @main git+https://github.com/python-poetry/poetry.git@main pipx install --suffix @pr1234 git+https://github.com/python-poetry/poetry.git@refs/pull/1234/head
-
Update Poetry
-
Uninstall Poetry
Warning
Poetry should always be installed in a dedicated virtual environment to isolate it from the rest of your system.
Each of the above described installation methods ensures that.
It should in no case be installed in the environment of the project that is to be managed by Poetry.
This ensures that Poetry’s own dependencies will not be accidentally upgraded or uninstalled.
In addition, the isolated virtual environment in which poetry is installed should not be activated for running poetry commands.
Enable tab completion for Bash, Fish, or Zsh #
poetry
supports generating completion scripts for Bash, Fish, and Zsh.
Note
You may need to restart your shell in order for these changes to take effect.
See poetry help completions
for full details, but the gist is as simple as using one of the following:
Bash #
Auto-loaded (recommended) #
poetry completions bash >> ~/.bash_completion
Lazy-loaded #
poetry completions bash > ${XDG_DATA_HOME:-~/.local/share}/bash-completion/completions/poetry
Fish #
poetry completions fish > ~/.config/fish/completions/poetry.fish
Zsh #
poetry completions zsh > ~/.zfunc/_poetry
You must then add the following lines in your ~/.zshrc
, if they do not already exist:
fpath+=~/.zfunc
autoload -Uz compinit && compinit
Oh My Zsh #
mkdir $ZSH_CUSTOM/plugins/poetry
poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry
You must then add poetry
to your plugins array in ~/.zshrc
:
Prezto #
poetry completions zsh > ~/.zprezto/modules/completion/external/src/_poetry
If completions still don’t work, try removing ~/.cache/prezto/zcompcache
and starting a new shell.
-
Open Windows Powershell: Navigate to your Start menu, type «Powershell», and select «Windows Powershell» from the search results.
-
Run Installation Command: In the Powershell window, paste the following command and press Enter:
Note: If you’ve installed Python through the Microsoft Store, replace py
with python
in the command below.
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
-
Wait for Installation to Complete: The installation process may take some time depending on your internet connection speed. Let it run until completion.
-
Copy Installation Path: Once the installation is complete, it will provide you with a path. Copy this path as you’ll need to add it to your user environment variables.
-
Add Path to Environment Variables:
- Right-click on the Start button and select «System».
- In the System window, click on «Advanced system settings» on the left sidebar.
- In the System Properties window, click on the «Environment Variables…» button.
- In the Environment Variables window, under «User variables for [YourUsername]», find the «Path» variable and select it.
- Click on the «Edit…» button.
- In the Edit Environment Variable window, click on «New» and paste the path you copied from the installation process.
- Click «OK» on all open windows to save your changes.
-
Close and Reopen Powershell: Close the Powershell window and open a new one.
-
Verify Installation: In the new Powershell window, type
poetry --version
and press Enter. If Poetry has been successfully installed, you should see its version number printed in the terminal.
You have now successfully installed Poetry on your Windows system. You can start using it for managing your Python projects.
Время на прочтение6 мин
Количество просмотров197K
Poetry — это инструмент для управления зависимостями в Python проектах (аналог встроенного pip). Идея реализации данного инструмента пришла его создателю в связи с тем, что различные способы менеджмента пакетов (requirements.txt, setup.cfg, MANIFEST.ini и другие) показались создателю Poetry не очень-то удобными.
Предлагаю тем, кто пишет на Python, познакомиться с данным инструментом, так как это очень простой и удобный в использовании инструмент, применение которого может упростить ведение и разработку проекта.
Установка
Установить poetry на windows можно либо при помощи pip:
pip install poetry
Либо более гибким вариантом через powershell:
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
Отличие от pip
Pip хранит данные о зависимостях в файле requirements.txt (название на самом-то деле может быть любое), poetry хранит информацию в файле pyproject.toml, однако, в случае с pip, в его файле хранится только список зависимостей с описанием версий, а в .toml хранится вся основная информация о проекте, что очень удобно, так как все данные собраны в одном месте (далее последует более подробное описание).
Чтобы установить зависимости в pip необходимо выполнить:
pip install -r requirements.txt
Что для poetry займет всего 2 слова:
# для первичной установки
poetry install
# для обновления
poetry update
Просмотр зависимостей в pip можно сделать только командой:
pip freeze
Однако будут показаны только актуальные версии библиотек, не будет возможности увидеть структуру всех пакетов с их зависимостями. В poetry в файле poetry.lock можно увидеть сведения обо всех установленных пакетах, команда:
poetry show --tree
Покажет древовидную структуру пакетов с их личными зависимостями.
Так же запуск проекта в pip (в случае с виртуальным окружением) создает неудобства, так как первым делом необходимо зайти в это самое окружение при помощи команды:
./venv/Scripts/activate.bat
И только затем можно выполнять какие-либо изменения с проектом. В poetry нет необходимости активировать виртуальное окружение, достаточно лишь зайти в папку с проектом и начинать пользоваться командами. Poetry сам найдет нужное окружение. Также в poetry можно менять версию python без необходимости менять старое виртуальное окружение.
Это лишь малая часть преимуществ. Далее рассмотрим примеры команд и структуру poetry файлов.
pyproject.toml
Главный файл для poetry — это pyproject.toml. Все данные о проекты должны быть записаны в нём. При установке пакетов poetry берёт данные из этого файла и формирует файл с зависимостями poetry.lock (если уже есть готовый файл poetry.lock, то данные будут браться из него). Toml файл состоит из нескольких блоков, каждый из которых имеет свои особенности, рассмотрим данные блоки:
[tool.poetry] — содержит основную информацию о проекте, такую как:
-
name — имя проекта
-
version — версия проекта
-
description — описание проекта
-
license — лицензия проекта
-
authors — список авторов проекта в формате name <email>
-
maintainers — список менторов проекта формате name <email>
-
readme — readme файл проекта в формате README.rst или README.md
-
homepage — URL сайта проекта
-
repository — URL репозитория проекта
-
documentation- URL документации проекта
-
keywords — список ключевых слов проекта (макс: 5)
-
classifier — список PyPI классификаторов
[tool.poetry.dependencies] — содержит описание всех зависимостей проекта. Каждая зависимость должна иметь название с указанием версии, также присутствует возможность скачать проекта с github с указанием ветки/версии/тэга, например:
-
requests = «^2.26.0»
-
requests = { git = «https://github.com/requests/requests.git» }
-
requests = { git = «https://github.com/kennethreitz/requests.git», branch = «next» }
-
numpy = { git = «https://github.com/numpy/numpy.git», tag = «v0.13.2» }
[tool.poetry.scripts] — в данном разделе можно описать различные сценарии или скрипты, которые будут выполняться при установке пакетов или при запуске приложения. Например:
-
poetry = ‘poetry.console:run’
-
main-run = ‘new_proj.main:run’ (после чего достаточно запустить
poetry main-run
и будет выполнен запуск функции run в файле new_prof/main.py)
[tool.poetry.extras] — в данном блоке описываются группы зависимостей, которые можно устанавливать отдельно:
[tool.poetry.dependencies]
psycopg2 = { version = "^2.7", optional = true }
pymysql = { version = "1.0.2", optional = true }
[tool.poetry.extras]
mysql = ["pymysql"]
pgsql = ["psycopg2"]
Далее зависимости можно установить двумя способами:
poetry install --extras "mysql pgsql"
poetry install -E mysql -E pgsql
[tool.poetry.urls] — помимо основных URL, указанных в [tool.poetry], можно указывать свои URL:
-
«Bug Tracker» = «https://github.com/python-poetry/poetry/issues»
Пример данных в pyproject.toml
[tool.poetry]
name = "new_proj"
version = "0.1.0"
description = "My description"
authors = ["Daniil Gorbenko <dani.gorbenko@gmail.com>"]
[tool.poetry.dependencies]
python = "^3.10"
pygame = "^2.1.0"
icecream = "^2.1.1"
requests = "^2.26.0"
psycopg2 = { version = "^2.7", optional = true }
pymysql = { version = "1.0.2", optional = true }
[tool.poetry.dev-dependencies]
Pympler = "^0.9"
[tool.poetry.urls]
"Bug Tracker" = "https://github.com/python-poetry/poetry/issues"
[tool.poetry.scripts]
run-main = "new_proj.main:main_def"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Основные методы
new
Чтобы создать новый проект с помощью Poetry, достаточно выполнить poetry new <название папки с проектом>. После чего создастся папка с названием вашего проекта, в этой папке будет лежать файл pyproject.toml.
poetry new new_project
init
Чтобы сделать пакетным менеджером poetry в уже имеющемся проекте, достаточно выполнить:
poetry init
Далее будет предложено заполнить немного основной информации о проекте
Метод может принимать некоторые необязательные параметры:
-
—name: имя проекта
-
—description: описание проекта
-
—author: имя автора
-
—python: совместимые версии Python
-
—dependency: требуемый пакет с версией пакета
-
—dev-dependency: требования к разработке
После чего в проекте появится файл pyproject.toml, в котором вручную можно изменить любые данные.
install
Чтобы установить зависимости проекта достаточно выполнить команду:
poetry install
Poetry считывает данные из pyproject.toml, строит дерево зависимостей проекта, разрешая проблемы с версиями зависимостей, и устанавливает все пакеты. Однако, если в проекте уже есть файл poetry.lock, то будут использоваться точные версии из этого файла.
Метод может принимать параметры:
-
—remove-untracked: удалит старые пакеты, которые больше не используются в проекте
-
—no-dev: dev пакеты не будут устанавливаться
update
Чтобы обновить версии зависимостей (тем самым обновив файл poetry.lock) достаточно выполнить:
poetry update
Также есть возможность обновить лишь определенные пакеты:
poetry update icecream pygame
Метод может принимать дополнительные параметры:
-
—no-dev : игнорирует обновление dev пакетов
-
—lock : не устанавливает и не обновляет пакеты, а только обновляет файл poetry.lock
add
Чтобы добавить новую библиотеку достаточно выполнить:
poetry add pygame
Можно указывать версию пакета:
poetry add "pygame>=2"
poetry add pygame@^2
Можно передать параметры:
-
—dev (-D): установит пакет в качестве dev зависимости
-
—path: путь к пакету (если пакет лежит локально)
-
—lock : не устанавливает зависимости, а только обновляет файл poetry.lock
remove
Чтобы удалить зависимость достаточно выполнить:
poetry remove pygame
Дополнительно можно передать параметры:
-
—dev : удалит пакет из dev зависимостей
show
Чтобы посмотреть зависимости проекта достаточно выполнить:
poetry show
результат poetry show
Если необходимо посмотреть информацию о конкретном пакете:
poetry show pygame
результат poetry show pygame
Посмотреть дерево зависимостей проекта можно при помощи:
poetry show --tree
результат poetry show —tree
Также можно передать параметры:
-
—tree: список зависимостей в виде дерева
-
—latest (-l): показать последние версии проектов
-
—outdated (-o): показать последние версии только для устаревших пакетов
run
Чтобы запустить проект достаточно выполнить:
poetry run python <имя python файла>
poetry run python main.py
poetry run <имя скрипта, описанного в [tool.poetry.scripts]>
poetry run main-run
PyCharm & Poetry
В PyCharm 2021.3 добавили поддержку Poetry. Теперь при создании проекта можно сразу указать poetry основным пакетным менеджером. Перед использованием необходимо установить executable версию poetry (на windows через poweshell):
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
После чего можно без проблем выбрать Poetry при создании проекта:
Далее автоматически будет создан .toml файл:
При установке пакетов через менеджер PyCharm файл pyproject.toml будет автоматически обновляться сам:
Версии зависимостей
При установке пакета можно указать точную версию проекта, например:
[tool.poetry.dependencies]
pygame = "2.1.0"
Но иногда есть необходимость указать диапазон версий пакета, чтобы получать обновления, в таком случае есть несколько способов указать диапазон:
[tool.poetry.dependencies]
pygame = "^2.1"
pygame = "~2.1"
pygame = "2.1.*"
pygame = "*"
Вот какие диапазоны принимают данные префиксы версий:
Зависимость |
Минимальная версия |
Максимальная версия |
^1.2.3 |
>=1.2.3 |
<2.0.0 |
^1.2 |
>=1.2.0 |
<2.0.0 |
^1 |
>=1.0.0 |
<2.0.0 |
^0.2.3 |
>=0.0.3 |
<0.0.4 |
~1.2.3 |
>=1.2.3 |
<1.3.0 |
~1.2 |
>=1.2.0 |
<1.3.0 |
~1 |
>=1.0.0 |
<2.0.0 |
* |
>=0.0.0 |
— |
1.* |
>=1.0.0 |
<2.0.0 |
1.2.* |
>=1.2.0 |
<1.3.0 |
Заключение
Poetry — отличная альтернатива pip. Он позволяет отказаться от requirements.txt в пользу более гибкой настройки проекта. Благодаря poetry можно в любой момент посмотреть информацию о зависимостях любого пакета, гибко настраивать версии и обмениваться poetry.lock файлами с уже заготовленным списком версий пакетов.

- Что умеет Poetry
- Установка
-
Установка на OSX и Linux
-
Установка на Windows
-
Установка через PIP и PIPX
- Работа с Poetry
-
Создание проекта
-
Pyproject.toml
-
Установка пакета
-
Удаление пакета
- Poetry и виртуальное окружение
- Конфигурация Poetry
- Список команд
- Сборка и настройка пакета
- Poetry и Docker
Poetry — это инструмент для управления зависимостями и сборкой пакетов в Python.
В Poetry представлен полный набор инструментов, которые могут понадобиться для детерминированного управления проектами на Python. В том числе, сборка пакетов, поддержка разных версий языка, тестирование и развертывание проектов.
Все началось с того, что создателю Poetry Себастьену Юстасу потребовался единый инструмент для управления проектами от начала до конца, надежный и интуитивно понятный, который бы мог использоваться и в рамках сообщества. Одного лишь менеджера зависимостей было недостаточно, чтобы управлять запуском тестов, процессом развертывания и всем созависимым окружением. Этот функционал находится за гранью возможностей обычных пакетных менеджеров, таких как Pip или Conda. Так появился Python Poetry.
Что умеет Poetry
Ключевой фичей Poetry Python является полное управление библиотеками, заявленными для вашего проекта, включая их установку, обновление и публикацию.
А еще он может:
- Создавать и упаковывать проекты с помощью одной команды.
- Публиковать проекты в PyPI и приватных репозиториях.
- Проверять состояния зависимостей одной командой.
- Фиксировать версии зависимостей.
- Управлять публикацией билдов.
- Использовать ваши настроенные виртуальные сервера или создавать собственное виртуальное окружение для полной изоляции от вашей системы.
Функционал командной строки расширяется с помощью плагинов, а предустановленные значения при необходимости легко заменяются на свои варианты. В целом, продукт имеет юзер-френдли интерфейс.
Установка
Poetry — кроссплатформенный инструмент. Теоретически он должен одинаково работать в Linux, MacOS и Windows. Системные требования предполагают использование актуальных версий Python, поэтому начиная с версии Poetry 1.2 не поддерживаются Python 2.7 и 3.5, будьте внимательны!
Poetry создает изолированное виртуальное окружение для вашего проекта, инсталлируя все необходимое и разруливая конфликты зависимостей (если они в принципе решаемы).
По умолчанию установка происходит в домашний каталог пользователя, но это можно изменить путем переопределения переменной окружения POETRY_HOME:
POETRY_HOME=/etc/poetry
Установка на OSX и Linux
Этапы установки на Mac и Linux идентичны:
1 Проверить версию Python (в консоли python --version
, и если версия Python по умолчанию 2.7, проверить python3 --version
).
2 Чтобы установить актуальную версию вводим в консоль:
curl -sSL https://install.python-poetry.org | python3 -
Обратите внимание, процесс установки может занять довольно длительное время.
3 Проверьте работу Poetry командой poetry --version
.
Если команда poetry
не найдена:
- Откройте
.bashrc
командойnano ~/.bashrc
; - Добавьте строку
export PATH="$HOME/.local/bin:$PATH"
и сохраните файл (Ctrl
+x
, далееy
); - Примените изменения к текущему сеансу командой
source ~/.bashrc
.
Установка на Windows
Для инсталляции Poetry:
1 Откройте Powershell (Win + X
далее i
, или найдите PoweShell через поиск).
2 Введите команду:
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
Если вы устанавливали Python через Microsoft Store, замените «py» на «python».
3 Проверьте работу Poetry командой poetry --version
.
Если команда poetry не найдена, добавить в переменную среды Path
значение %APPDATA%\Python\Scripts
. Чтобы изменения вступили в силу, перезайдите в консоль.
Установка через PIP и PIPX
Для данного варианта установки необходимо иметь на борту менеджер пакетов PIP (или PIPX).
Для установки Poetry через PIP выполните команду:
pip install --user poetry
Имейте ввиду, что зависимости пакета Poetry могут вызвать конфликт с уже установленными пакетами в вашей системе.
Команды Pipx для установки, обновления и удаления инструмента:
pipx install poetry
pipx upgrade poetry
pipx uninstall poetry
Pipx поддерживает только версии Python старше 3.6.
Работа с Poetry
Для начала убедимся, что Poetry корректно установлен, введя в терминал команду:
poetry --version
Если в ответ высветится актуальный номер версии, можно приступать к работе.
Создание проекта
Создаем пробный проект и присваиваем ему название «project-poetry»:
poetry new project-poetry
Произойдет автоматическое создание папки проекта со следующей структурой:
project-poetry
project-poetry
__init__.py
tests
__init__.py
test_project_poetry.py
pyproject.toml
README.rst
В случае, если необходимо инициализировать Poetry-проект в уже существующем каталоге, перейдите в него и выполните команду:
poetry init
Pyproject.toml
В файле pyproject.toml
содержится описание вашего Poetry-проекта — название, описание, используемый репозиторий, зависимости проекта и т.д. С помощью него легко организовать зависимости вашего проекта (pyproject.toml
можно назвать преемником устаревшего requirements.txt
).
Если вы знакомы с Pipenv, то наверняка заметите, что
pyproject.toml
очень похож наPipfile
.
После инициализации проекта, содержание файла будет следующим:
[tool.poetry]
name = "project-poetry"
version = "0.1.0"
description = ""
authors = ["Alexander <info@pythonchik.ru>"]
[tool.poetry.dependencies]
python = "^3.8"
[tool.poetry.dev-dependencies]
pytest = "^5.2"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Разберемся, что означает каждая секция:
[tool.poetry]
— содержит метаданные проекта, которые не относятся к пакетам зависимостей — название, описание, указание авторства и контактную информацию;[tool.poetry.dependencies]
— раздел содержит зависимости, необходимые для проекта;[tool.poetry.dev-dependencies]
— зависимости разработки (не войдут в сборку проекта, но необходимые для других аспектов — тестирования, документации и т. д.);[build-system]
— если вы используете Poetry для управления своим проектом, вы должны ссылаться на него в этом разделе (командыnew
иinit
автоматически добавляют информацию в разделbuild-system
).
📌 О дополнительных секциях файла можете прочитать в официальной документации «The pyproject.toml file».
Все переменные могут задаваться вручную в соответствующие места Pyproject.toml
, а также с помощью команды add
или добавляться автоматически средствами Poetry.
Установка пакета
Теперь установим новый пакет в наш проект:
poetry add pymongo
После установки пакета, в pyproject.toml
появится новая запись:
[tool.poetry.dependencies]
python = "^3.8"
pymongo = "^3.11.2"
💭 Для добавления dev-зависимости (зависимости для разработки) необходимо добавить флаг —dev: poetry add pytest --dev
.
Удаление пакета
Для удаления пакета достаточно выполнить команду:
poetry remove pymongo
При этом запись пакета также удалится из pyproject.toml
.
Poetry и виртуальное окружение
По умолчанию, Poetry автоматически создает виртуальное окружение для вашего проекта в cache-директории:
- для Windows —
C:\Users\<username>\AppData\Local\pypoetry\Cache\virtualenvs
; - для Linux —
~/.cache/pypoetry/virtualenvs
; - для macOS —
~/Library/Caches/pypoetry/virtualenvs
.
В эту директорию будут сохраняться все зависимости для проекта.
Конфигурация Poetry
Конфигурация Poetry настраивается с помощью команды poetry config
. После первого запуска команды, Poetry создаст файл конфигурации config.toml
, в котором будут храниться все заданные параметры. Находится файл в директории:
- для Windows —
C:\Users\<username>\AppData\Roaming\pypoetry
; - для Linux —
~/.config/pypoetry
; - для macOS —
~/Library/Application Support/pypoetry
.
Для примера, попробуем настроить Poetry так, чтобы он создавал виртуальное окружение virtualenvs
не в cache-директории, а в корневом каталоге проекта. Для этого установим переменной virtualenvs.in-project
значение true
:
poetry config virtualenvs.in-project true
Чтобы убедиться, что значение успешно установилась, выполним команду:
poetry config virtualenvs.in-project
💭 Чтобы посмотреть все текущие параметры Poetry, используйте команду poetry config --list
.
Теперь все зависимости будут устанавливаться в папку .venv
в корне вашего проекта.
Если параметр нужно удалить, используйте флаг --unset
:
poetry config virtualenvs.in-project --unset
📌 Подробнее о настройке конфигурации Poetry читайте тут.
Список команд
Poetry охватывает множество функций, связанных с управлением конфигурацией и публикацией пакетов:
shell
— при первом запуске этой команды в каталоге вашего проекта Poetry создает виртуальную среду Python, которая будет связана с проектом. Вместо создания папки, содержащей библиотеки зависимостей, Poetry создает среду на глобальном системном пути. Как только эта виртуальная среда будет создана, ее можно активировать в любое время, запустивpoetry shell
в каталоге проекта.install
— устанавливает зависимости, указанные вpyproject.toml
. При первой установке создается файл.lock
, который содержит фактические номера версий каждого установленного пакета. Номера версий в.lock
приоритетнее, чем находящиеся вpyproject.toml
.update
— если для пакетов вpyproject.toml
существуют более новые версии, они будут установлены, и.lock
файл будет обновлен.add
— добавление зависимости кpyproject.toml
. Пакет устанавливается сразу после применения команды.remove
— удаление библиотеки зависимостей.config
— пути к текущей виртуальной среде или ее переменные. Передача опции--list
вернет текущие значения конфигурации.check
— проверяетpyproject.toml
на наличие ошибок.show
— возвращает вывод всех пакетов, установленных в проекте, включая зависимости зависимостей.run
— выполняет сценарий, заданный в разделеtool.poetry.scripts
вpyproject.toml
.build
— собирает исходники и пакеты в архив.publish
— публикует вывод предыдущей сборки во внешнем репозитории, например, в PyPi.
Чтобы получить справку из командной строки с полным списком команд, просто вызовите poetry
.
Сборка и настройка пакета
Чтобы собрать пакет, запускаем команду build
.
poetry build
Building project-poetry (0.1.0)
- Building sdist
- Built project-poetry-0.1.0.tar.gz
- Building wheel
- Built project_poetry-0.1.0-py3-none-any.whl
В результате в папке dist
будут сформированы пакеты.
Если мы хотим ограничить сборку определенным типом, можно просто использовать параметр -F
.
poetry build -F wheel # or sdist
Чтобы развернуть пакет, нужно настроить репозитории и учетные данные. Для этого применяется команда config
.
poetry config repositories.priv https://my.repository
В примере происходит настройка репозитория с именем priv
и Url-адресом https://my.repository
.
Сохранить учетные данные для этого репозитория также можно с помощью команды config:
poetry config http-basic.priv user password
💭 В приведенной команде user
и password
соответствуют имени пользователя и паролю для входа в наш частный репозиторий. Обратите внимание, если не указать пароль, то его будет предложено ввести при развертывании пакета.
Закончив настройку, мы можем просто развернуть пакет следующей командой:
poetry publish
Если использован частный репозиторий, следует указать его имя Priv с помощью опции -r
.
Poetry и Docker
Использование Poetry для работы с проектом внутри Docker-контейнера иногда сопряжено со сложностями интеграции. Ключевым моментом является отключение VirtualEnv
, так как он не нужен в уже изолированном докере:
poetry config virtualenvs.create false
Затем устанавливаются разные наборы зависимостей для переменной среды:
poetry install $(test "$MY_ENV" == production && echo "--no-dev")
Таким образом в $MY_ENV
будет контролироваться, какой набор зависимостей следует устанавливать: все (по умолчанию) или продакшн только с --no-dev
флагом.
Poetry выходит далеко за рамки стандартного менеджера зависимостей, предлагая такие функции, как создание файлов .lock
, создание шаблонов проекта и множество параметров конфигурации, каждый из которых обрабатывается через простой интерфейс командной строки. Если вы не знаете, как чисто и эффективно структурировать свои проекты Python и облегчить управление ими, сделайте себе одолжение и используйте Poetry.
Axie Scholar Utilities Wiki
Wiki pages for the axie scholar utilities tool.
View the Project on GitHub FerranMarin/axie-scholar-utilities
- Download ZIP File
- Download TAR Ball
- View On GitHub
To run my tool you will need Python3 (the language it is written in) to be installed on your machine. Please do look up how to install it if you get stuck, but here there go a brief explanation on how to do so.
Install Python and Poetry
-
Go to the Official Python Website and download python3. I personally run Python 3.8.2 in my development machine, but this should work in any 3.8 or higher version. (Maybe any version from 3.6?? – If you decide to go with those versions and have issues, please do report and I will try and fix them)
-
During installation, just follow the installer instructions but remmember to tick the box on the 1st window that says “Add Python 3.9 to PATH”. If you do no do that, you will need to remmember the full path of where you have Python installed everytime you want to execute it (which is annoying!). By just ticking that you will have a nicer way to call python just using its name “python”.
-
To avoid issues down the line. Download Visual C++ Build tools from here
-
Install Poetry. We could use the standard PIP package manager for Python, but I like Poetry more as it fixes the versions down in a better way. To do so you need to open your Powershell and execute:
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
-
Now it is time to download my code, there are multiple ways:
- Use git. This is a method I would only recommend if you are already familiar with git. So you know, clone away this repo
- Go to releases and download the latest one. Check for the latest one here. Then just Unzip it somewhere in your computer.
- Use git. This is a method I would only recommend if you are already familiar with git. So you know, clone away this repo
-
Wherever you have my code in your computer you will need to navigate using your Powershell or Terminal to axie-scholar-utilities/source. If you are not comfortable with a terminal, you can just navigate using the file explorer, right click the folder, go to properties and copy the full path or location. It will be something like
C:\Users\<myUser>\Documents\axie-scholar-utilitiesv0.1\axie-scholar-utilities\source
. With that, just open your power shell and execute (change the path to the folder location in YOUR computer):cd C:\Users\<myUser>\Documents\axie-scholar-utilitiesv0.1\axie-scholar-utilities\source
-
Now, given you have Python and Poetry installed execute the following command to install all the extra dependencies you need:
To learn how to run the commands, please follow this link
TREZOR USERS, follow this other LINK