После того, как я попробовал Pyenv и Pipenv, я все еще не уверен, действительно ли это надежно и удобно использовать. Иногда я получал ошибку при установке пакета с Pipenv или у меня была проблема при переключении версии с помощью Pyenv. Так что, возможно, эти инструменты недостаточно стабильны (по крайней мере, в моей оконной машине). Затем я нашел этого многообещающего нового менеджера зависимостей для Python с именем Poetry. По внешнему виду его репозитория на GitHub и странице документации я убежден, что этот инструмент более серьезный, чем предыдущие два. Итак, давайте попробуем.
Установка стихов на машине Windows
В настоящее время я использую Python 3.8 на своей машине. На основе Установка документов , Установить стихи довольно проста, но убедитесь, что у вас установлен необходимый Python. Открыть консоль PowerShell с привилегией администратора, используйте этот сценарий и введите:
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
Тогда это должно выполнять работу. Вот мой результат журнала:
C:\WINDOWS\system32> (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python - Retrieving Poetry metadata This installer is deprecated. Poetry versions installed using this script will not be able to use 'self update' command to upgrade to 1.2.0a1 or later. # Welcome to Poetry! This will download and install the latest version of Poetry, a dependency and package manager for Python. It will add the `poetry` command to Poetry's bin directory, located at: %USERPROFILE%\.poetry\bin This path will then be added to your `PATH` environment variable by modifying the `HKEY_CURRENT_USER/Environment/PATH` registry key. You can uninstall at any time by executing this script with the --uninstall option, and these changes will be reverted. Installing version: 1.1.7 - Downloading poetry-1.1.7-win32.tar.gz (52.41MB) Poetry (1.1.7) is installed now. Great! To get started you need Poetry's bin directory (%USERPROFILE%\.poetry\bin) in your `PATH` environment variable. Future applications will automatically have the correct environment, but you may need to restart your current shell.
Затем откройте новую консоль командной строки (CMD) без привилегии администратора и введите только это и введите:
poetry
Это должно проверять, что поэзия установлена идеально, как это:
C:\Users\dendi>poetry Poetry version 1.1.7 USAGE poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n][ ] ... [ ] ARGUMENTS The command to execute The arguments of the command GLOBAL OPTIONS -h (--help) Display this help message -q (--quiet) Do not output any message -v (--verbose) Increase the verbosity of messages: "-v" for normal output, "-vv" for more verbose output and "-vvv" for debug -V (--version) Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n (--no-interaction) Do not ask any interactive question AVAILABLE COMMANDS about Shows information about Poetry. add Adds a new dependency to pyproject.toml. build Builds a package, as a tarball and a wheel by default. cache Interact with Poetry's cache check Checks the validity of the pyproject.toml file. config Manages configuration settings. debug Debug various elements of Poetry. env Interact with Poetry's project environments. export Exports the lock file to alternative formats. help Display the manual of a command init Creates a basic pyproject.toml file in the current directory. install Installs the project dependencies. lock Locks the project dependencies. new Creates a new Python project at . publish Publishes a package to a remote repository. remove Removes a package from the project dependencies. run Runs a command in the appropriate environment. search Searches for packages on remote repositories. self Interact with Poetry directly. shell Spawns a shell within the virtual environment. show Shows information about packages. update Update the dependencies as according to the pyproject.toml file. version Shows the version of the project or bumps it when a valid bump rule is provided.
Создание базового проекта с использованием поэзии
Давайте создадим простой проект API с использованием FastAPI, начиная сначала создавать базу проекта с поэзией:
poetry new fastapi-example
Он создает новый каталог с этой структурой:
fastapi-example |__ fastapi_example |__ __init__.py |__ tests |__ __init__.py |__ test_fastapi_example.py |__ pyproject.toml |__ README.rst
Установка пакета с использованием поэзии
Рекомендуется создать виртуальную среду в самом проекте. Установите это с этой командой:
poetry config virtualenvs.in-project true
Пакет, необходимый для проекта, очевидно, FASTAPI
упаковка, чтобы добавить его с поэзией:
poetry add fastapi
Каковы изменения после того, как мы добавим Fastapi в проект? Есть два файла, которые затронули: pyproject
& Poetry.lock
Анкет Изменения похожи на обычный диспетчер зависимостей, так как установлен и перечислен установленный пакет.
Добавление пакета для первого также создаст каталог VirtualENV. В моей машине место по умолчанию в C: \ users \ dendi \ appdata \ local \ pypoetry \ cache \ virtualenvs
Анкет
Чтобы продолжить тестирование проекта FASTAPI, нам также нужен Uvicorn для сервера:
poetry add uvicorn[standard]
Тестирование проекта FASTAPI с использованием поэзии
Давайте создадим main.py
Подайте корневой каталог проекта и заполните его образец из официальных документов .
После этого давайте запустим его:
poetry run uvicorn main:app --reload
Сервер должен работать и начать, получить доступ к нему в браузере по адресу Localhost: 8000
Анкет
Он работает на вашей машине?
Оригинал: “https://dev.to/dendihandian/trying-poetry-a-new-python-dependency-manager-318k”