Install Using Poetry On Windows
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:
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.
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):
Now, given you have Python and Poetry installed execute the following command to install all the extra dependencies you need:
Установка Poetry под Windows
Хоть процесс установки подробно описан в документации , у многих все равно возникают проблемы. Давайте же установим Poetry вместе!
Запускаем терминал: прожимаем сочетание клавиш Win + R и в открывшемся окне вписываем cmd
В терминале прописываем команду для установки Poetry:
После успешной установки для работы команды poetry нам нужно добавить путь к скриптам Python в переменную окружения Path. Для этого в поиске Windows находим Изменение переменных среды текущего пользователя
В открывшемся окне находим переменную Path и нажимаем изменить
Добавляем следующую переменную: %APPDATA%\Python\Scripts
Сохраняем изменения и снова открываем терминал. Проверить работоспособность можно следующей командой: poetry —version
Poetry — менеджер пакетов для Python
Рассмотрим установку и использование инструмента для управления библиотеками и зависимостями в Python.
Введение
Poetry — это совершенно новый подход к управлению зависимостями и виртуальным окружением в Python. Это бесплатный и с открытым исходным кодом проект, задачи которого — обеспечить более предсказуемую и удобную среду для работы с экосистемой управления пакетами в Python.
Установка
Поскольку Poetry — это пакет из репозитория PyPI, вы можете установить его с помощью pip
Имейте в виду, что Poetry предоставляет функционал создания виртуальных сред, поэтому его не следует устанавливать внутри самой виртуальной среды. Вы можете установить его либо в пользовательские библиотеки, либо в глобальные библиотеки, я рекомендую установить его в пользовательские библиотеки Python.
Как уже говорилось, приведенная выше команда установит пакет poetry в каталог site-packages. В зависимости от конфигурации это будет либо глобальный каталог site-packages, либо пользовательский каталог site-packages. Чтобы избежать этой двусмысленности, создатели проекта рекомендуют использовать альтернативный метод загрузки.
На macOS, Linux и других POSIX-совместимых системах можно установить с помощью утилиты curl
В операционной системе Windows установка происходит с помощью PowerShell
Использование
Установив его можно использовать для следующих задач
- Создания новых проектов Python с виртуальными средами
- Инициализировать существующие проекты с виртуальным окружением
- Управлять зависимостями проекта
- Упаковывать и опубликовывать библиотеки в PyPI
Чтобы инициализировать новый проект, вы должны использовать команду как показано в следующем примере
Приведенная выше команда создаст новый каталог test_proj с некоторыми начальными файлами в нем. Структура этого каталога будет примерно следующей
Как вы можете видеть, он создает несколько файлов, которые можно использовать в качестве скелетов для дальнейшей разработки. Если у вас есть уже существующий проект, вы можете инициализировать Poetry в нем с помощью команды poetry init в каталоге проекта. Разница в том, что при этом не будет создано никаких новых файлов проекта, кроме конфигурационного файла pyproject.toml.
Ядром является файл pyproject.toml, в котором хранится конфигурация проекта.
После создания нового проекта он выглядит следующим образом
Как вы можете видеть, файл pyproject.toml разделен на четыре секции.
К ним относятся
- [tool.poetry]: Это набор основных метаданных проекта, таких как название, описание версии и автор. Эта информация необходима, если вы хотите опубликовать свой проект как пакет на PyPI.
- [tool.poetry.dependencies]: Это список зависимостей проекта. В свежих проектах он содержит только версию Python, но может также включать все версии пакетов, которые обычно описываются в файле requirements.txt.
- [tool.poetry.dev-dependencies]: Это список зависимостей, которые требуют локальной разработки, например, фреймворки для тестирования или инструменты для повышения производительности. Обычно принято иметь отдельный список таких зависимостей, поскольку они обычно не требуются в производственных средах.
- [build-system]: Описывает Poetry как систему сборки, используемую для управления проектом.
Файл pyproject.toml является частью официального стандарта Python, описанного в документе PEP 518
Если вы создадите новый проект или инициализируете существующий, он сможет создать новую виртуальную среду в общем месте, когда вам это понадобится. Вы можете активировать ее вместо того, чтобы использовать скрипты activate.
Это удобнее, чем использование обычного модуля venv, потому что вам не нужно помнить, где хранится реальная виртуальная среда. Единственное, что вам нужно сделать, это активировать оболочку в корне исходников вашего проекта и использовать команду, как в следующем примере:
С этого момента в текущей оболочке будет активировано виртуальное окружение.
Вы можете проверить это с помощью команды
Еще одна вещь, которую меняет Poetry, — это то, как вы управляете зависимостями. Как мы уже говорили, файлы requirements.txt — это очень простой способ управления зависимостями. Они описывают, какие пакеты нужно установить, но не отслеживают автоматически, что было установлено в окружении в процессе разработки. Если вы установите что-то с помощью pip, но забудете отразить это изменение в файле requirements.txt, у других программистов могут возникнуть проблемы с воссозданием вашей среды.
С Poetry эта проблема исчезла. Существует только один способ добавления зависимостей в ваш проект, и это команда poetry add <имя пакета>.
Это позволит вам
- Разрешить целые деревья зависимостей, если другие пакеты имеют общие зависимости
- Установить все пакеты из дерева зависимостей в виртуальную среду, связанную с вашим проектом
- Сохранить изменения в файле pyproject.toml.
Следующая расшифровка представляет процесс установки фреймворка Django в среде test_proj
Это даст результат, подобный следующему
Ниже приведен результирующий файл pyproject.toml с изменениями в зависимостях проекта
Предыдущая расшифровка показывает, что пакетный менеджер установил 3 пакета, когда мы просили установить только один пакет. Это потому, что у Django есть свои собственные зависимости, а у этих зависимостей есть свои собственные зависимости. Такие зависимости от зависимостей называются переходными зависимостями. Библиотеки часто имеют нестрогие спецификаторы версии, такие как setuptools ==1.2.0, чтобы обозначить, что они могут принимать широкий диапазон версий. Менеджер пакетов реализует алгоритм разрешения зависимостей, чтобы выяснить, какой набор версий может удовлетворить всем ограничениям транзитивных зависимостей.
Проблема с переходными зависимостями заключается в их способности меняться со временем.
Помните, что библиотеки могут иметь нечеткие спецификаторы версий для своих зависимостей.
Поэтому возможно, что в двух средах, созданных в разные даты, будут установлены разные конечные версии пакетов. Невозможность воспроизвести точные версии всех переходных зависимостей может стать большой проблемой для крупных проектов, и вручную отслеживать их в файлах requirements.txt обычно очень сложно.
Менеджер пакетов решает проблему переходных зависимостей с помощью так называемых файлов блокировки зависимостей. Когда вы уверены, что в вашей среде есть рабочий и протестированный набор версий пакетов.
Вы можете выполнить следующую команду
Это создаст файл poetry.lock, который является полным снимком процесса разрешения зависимостей. Этот файл будет затем использоваться для определения версий переходных зависимостей вместо обычного процесса разрешения зависимостей.
Каждый раз, когда новые пакеты добавляются с помощью команды poetry add, пакетный менеджер будет оценивать дерево зависимостей и обновлять файл poetry.lock. Подход с использованием файла блокировки пока что является лучшим и самым надежным способом работы с переходными зависимостями в вашем проекте.
Заключение
В данном руководстве я постарался дать вам общее представление о возможностях такого удобного инструмента для управления зависимостями в Python как Poetry.
На этом его функционал не ограничивается и более подробную информацию о всех доступных опциях можно прочитать на официальном сайте приложения.
Getting Started with Python Poetry
The Poetry packaging and dependency management tool is the somewhat-new hotness for creating and maintaining a Python project.
This article is an introductory tutorial (also known as «I am writing this down so I learn it better now and have somewhere to look when I forget it later»).
Install Poetry
To install Poetry on Windows, launch a powershell window, then:
Exit fullscreen mode
Then make sure %USERPROFILE%\.poetry\bin is on your PATH variable. Search your start menu for «environment» and you should find somthing like «Edit environment variables for your account.»
To do the same on Mac, Linux, etc.:
Exit fullscreen mode
Then make sure $HOME/.poetry/bin is in your PATH variable. Most likely, Poetry has already modified your
/.profile to source $HOME/.poetry/env , but you can double-check this or configure the PATH in the way you choose.
The official Poetry docs provide further detail.
Initialize the project with poetry
Poetry can create the directory and initial structure.
Exit fullscreen mode
This will create a directory pygreet with the package greet in a src directory.
While a variety of ways to structure your distribution package exist, I like the approach of placing Python code in a src directory. Poetry supports this with the —src flag, as shown above.
Add code
There are several decisions to be made about structuring code, and you are welcome to read my article on Python modules and packages.
For now, I am simply adding another module to the greet package, and will call it location.py . It contains the following code:
Exit fullscreen mode
So now the project directory looks like this:
Exit fullscreen mode
Adding dependencies
That import arrow in our code requires the date library arrow to be installed as a dependency. To do so, use poetry add :
Exit fullscreen mode
If you need to hunt for more packages, Poetry has a convenient search utility in poetry search , so that poetry search arrow will return a list of all PyPI packages with «arrow» in the name.
Install package and dependencies
To install the package in developer mode, along with its dependencies:
Exit fullscreen mode
Using the virtual environment
The poetry run command will execute the command in the virtual environment. For instance, try the following:
Exit fullscreen mode
Executing a shell in the virtual environment (i.e. activating it) is also possible with poetry shell after which we can execute python or other commands.
Exit fullscreen mode
And that is a great way to test the module we wrote. Uh, no. No, that’s not it at all.
Write tests and use pytest with Poetry
Tests can be written while developing the project. Poetry has already partly scaffolded the initial tests by creating a tests directory and an initial test_greet.py file. Edit that file and add an additional test. Something like
Exit fullscreen mode
Then either run poetry run pytest or, if already in the shell launched by poetry shell , just running pytest will do.