Как установить поэзию на mac os

Обновлено: 06.07.2024

Poetry – это инструмент, облегчающий создание виртуальной среды Python на основе зависимостей проекта. Вы можете объявить библиотеки, от которых зависит ваш проект, и Poetry установит и обновит их для вас.

Зависимости проекта записываются в файл pyproject.toml, в котором указываются необходимые пакеты, сценарии, подключаемые модули и URL-адреса. Дополнительные сведения о его структуре и формате см. в справочнике по pyproject.

Чтобы использовать Poetry в PyCharm, вам необходимо установить его на свой компьютер и создать специальную среду Python.

Установить поэзию

Откройте окно терминала (PowerShell в Windows) и выполните следующую команду для вашей операционной системы:

Проверьте установку в папке Poetry bin:

Путь: $HOME/.poetry/bin

Пример: /Users/jetbrains/.poetry/bin/poetry

Путь: %USERPROFILE%\.poetry\bin

Пример: C:\Users\jetbrains\.poetry\bin\poetry.bat

Путь: $HOME/.poetry/bin

Пример: /home/jetbrains/.poetry/bin/poetry

Эти каталоги автоматически добавляются в переменную $PATH, чтобы PyCharm мог выбрать ее при создании виртуальной среды Poetry.

Создайте поэтическую среду

Выполните одно из следующих действий:

Нажмите на селектор Python Interpreter и выберите Add Interpreter .

Нажмите Ctrl+Alt+S, чтобы открыть настройки/настройки проекта и перейти к проекту

| Интерпретатор Python. Затем щелкните значок и выберите Добавить .

Нажмите Ctrl+Alt+S и выберите Проект | Интерпретатор Python. Нажмите и выберите Добавить .

На левой панели диалогового окна "Добавить интерпретатор Python" выберите Poetry Environment . Следующие действия зависят от того, существовала ли ранее виртуальная среда.

создание поэтической среды

Если выбрана среда поэзии:

Выберите базовый интерпретатор Python из списка или щелкните и найдите его расположение в файловой системе.

Если PyCharm не обнаружил путь Poetry, щелкните рядом с исполняемым файлом Poetry и перейдите к его расположению. Затем нажмите OK в окне проводника, чтобы добавить его в поле.

Если выбрана существующая среда:

Разверните список Интерпретатор и выберите любую из существующих сред Poetry. Либо нажмите и укажите путь к нему.

Нажмите "ОК", чтобы завершить задачу.

Если вы выберете среду Poetry при создании нового проекта Python, PyCharm добавит в ваш проект два файла:

Poetry – это инструмент для управления зависимостями и упаковки в Python. Он позволяет вам объявить библиотеки, от которых зависит ваш проект, и будет управлять ими (устанавливать/обновлять) за вас.

Поэзия требует Python 2.7 или 3.5+. Он мультиплатформенный, и цель состоит в том, чтобы он одинаково хорошо работал в Windows, Linux и OSX.

Python 2.7 и 3.5 больше не будут поддерживаться в следующем выпуске функций (1.2). Вам следует обновить версию Python до поддерживаемой.

Поэзия предоставляет настраиваемый установщик, который установит поэзию изолированно от остальной части вашей системы, установив ее зависимости. Это рекомендуемый способ установки поэзии .

Описанный здесь сценарий get-poetry.py будет заменен в Poetry 1.2 на install-poetry.py . Начиная с Poetry 1.1.7, вы уже можете использовать этот сценарий, как описано здесь.

Вам нужно установить Poetry только один раз. Он автоматически подберет текущую версию Python и использует ее для создания виртуальных окружений соответственно.

Установщик устанавливает инструмент поэзии в каталог bin Poetry. В Unix он находится в $HOME/.poetry/bin, а в Windows — в %USERPROFILE%\.poetry\bin .

Этот каталог будет автоматически добавлен в вашу переменную среды $PATH путем добавления инструкции к вашей конфигурации $HOME/.profile (или эквивалентным файлам). Если вас это не устраивает, передайте установщику флаг --no-modify-path и вручную добавьте каталог bin Poetry к вашему пути.

Наконец, откройте новую оболочку и введите следующее:

Если вы видите что-то вроде Poetry 0.12.0, значит, вы готовы к использованию Poetry. Если вы решите, что Poetry вам не по душе, вы можете полностью удалить ее из своей системы, снова запустив программу установки с параметром --uninstall или установив переменную среды POETRY_UNINSTALL перед запуском программы установки.

По умолчанию Poetry устанавливается в домашний каталог пользователя для конкретной платформы. Если вы хотите изменить это, вы можете определить переменную среды POETRY_HOME:

Если вы хотите установить предварительные версии, вы можете сделать это, передав --preview в get-poetry.py или используя переменную среды POETRY_PREVIEW:

Аналогичным образом, если вы хотите установить конкретную версию, вы можете использовать --version или переменную среды POETRY_VERSION:

Использование альтернативных методов установки приведет к тому, что Poetry всегда будет использовать версию Python, для которой он был установлен, для создания виртуальных окружений.

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

Возможно использование pip для установки Poetry.

Имейте в виду, что он также установит зависимости Poetry, которые могут вызвать конфликты с другими пакетами.

Также можно использовать pipx для установки Poetry. pipx используется для глобальной установки приложений CLI Python, но при этом изолирует их в виртуальных средах. Это позволяет выполнять чистые обновления и удаления. Pipx поддерживает Python 3.6 и более поздние версии. Если вы используете более раннюю версию Python, обратите внимание на pipsi.

Обновить Poetry до последней стабильной версии так же просто, как вызвать команду самообновления.

Если вы хотите установить предварительные версии, вы можете использовать параметр --preview.

И, наконец, если вы хотите установить конкретную версию, вы можете передать ее в качестве аргумента функции самообновления.

poetry поддерживает создание сценариев завершения для Bash, Fish и Zsh. Полную информацию см. в разделах помощи поэзии, но суть так же проста, как использование одного из следующих действий:

Для zsh вы должны добавить следующую строку в файл ~/.zshrc перед compinit :

Управление зависимостями Python и упаковка стали проще.

Навигация

Ссылки на проекты

Статистика

Просмотрите статистику по этому проекту через Libraries.io или с помощью нашего общедоступного набора данных в Google BigQuery

Лицензия: лицензия MIT (MIT)

Теги упаковка, зависимость, поэзия

Требуется: Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*

Сопровождающие

Классификаторы

  • Лицензия
    • Одобрено OSI :: Лицензия MIT
    • Питон :: 2
    • Питон :: 2.7
    • Питон :: 3
    • Питон :: 3.5
    • Питон :: 3.6
    • Питон :: 3.7
    • Питон :: 3.8
    • Питон :: 3.9
    • Питон :: 3.10
    • Разработка программного обеспечения :: Инструменты сборки
    • Разработка ПО :: Библиотеки :: Модули Python

    Описание проекта

    Poetry помогает вам объявлять, управлять и устанавливать зависимости проектов Python, гарантируя, что у вас всегда будет правильный стек.

    Он поддерживает Python 2.7 и 3.5+.

    Примечание. Python 2.7 и 3.5 больше не будут поддерживаться в следующем выпуске функций (1.2). Вам следует обновить версию Python до поддерживаемой.

    Установка

    Поэзия предоставляет настраиваемый установщик, который установит поэзию изолированно от остальной части вашей системы, установив ее зависимости. Это рекомендуемый способ установки поэзии .

    Примечание. Описанный здесь сценарий get-poetry.py будет заменен в Poetry 1.2 на install-poetry.py . Начиная с Poetry 1.1.7, вы уже можете использовать этот сценарий, как описано здесь.

    Кроме того, вы можете загрузить файл get-poetry.py и запустить его отдельно.

    Сценарий установки должен иметь возможность найти один из следующих исполняемых файлов в среде пути вашей оболочки:

    • python (который может быть интерпретатором py3 или py2)
    • python3
    • py.exe-3 (Windows)
    • py.exe-2 (Windows)

    Если вы хотите установить предварительные версии, вы можете сделать это, передав --preview в get-poetry.py :

    Точно так же, если вы хотите установить конкретную версию, вы можете использовать --version :

    Также можно использовать pip для установки поэзии.

    Однако имейте в виду, что он также установит зависимости поэзии, которые могут вызвать конфликты.

    Обновление поэзии

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

    Если вы хотите установить предварительные версии, вы можете использовать параметр --preview.

    И, наконец, если вы хотите установить конкретную версию, вы можете передать ее в качестве аргумента функции самообновления.

    Включить автодополнение табуляции для Bash, Fish или Zsh

    poetry поддерживает создание сценариев завершения для Bash, Fish и Zsh. Полную информацию см. в разделах помощи поэзии, но суть так же проста, как использование одного из следующих действий:

    Примечание. вам может потребоваться перезапустить оболочку, чтобы изменения вступили в силу.

    Для zsh вы должны добавить следующую строку в файл ~/.zshrc перед compinit (не для установки доморощенного):

    Введение

    poetry – это инструмент для установки зависимостей, а также сборки и упаковки пакетов Python. Для всего этого нужен только один файл: новый стандартизированный pyproject.toml .

    Другими словами, поэзия использует pyproject.toml для замены setup.py , requirements.txt , setup.cfg , MANIFEST.in и недавно добавленного Pipfile .

    • Он попытается применить семантическое управление версиями как лучший способ именования версий.
    • Вы можете указать файл readme, включенные и исключенные файлы: больше нет MANIFEST.in .поэзия также будет использовать файлы игнорирования VCS (например, .gitignore ) для заполнения раздела исключения.
    • Можно указать ключевые слова (до 5), которые будут действовать как теги на сайте упаковки.
    • Секции зависимостей поддерживают символы вставки, тильды, подстановочные знаки, неравенство и множество требований.
    • Вы должны указать версии Python, с которыми совместим ваш пакет.

    poetry также обнаружит, находитесь ли вы внутри виртуальной среды, и соответствующим образом установит пакеты. Таким образом, поэзию можно установить глобально и использовать везде.

    poetry также поставляется с полноценной библиотекой разрешения зависимостей.

    Системы упаковки и управление зависимостями в Python довольно запутаны и трудны для понимания новичками. Даже опытным разработчикам иногда может быть сложно создать все файлы, необходимые в проекте Python: setup.py , requirements.txt , setup.cfg , MANIFEST.in и недавно добавленный Pipfile .

    Поэтому мне нужен был инструмент, который ограничивал бы все действия одним файлом конфигурации: управление зависимостями, упаковку и публикацию.

    Вдохновением для этого послужили инструменты, существующие на других языках, такие как composer (PHP) или Cargo (Rust).

    И, наконец, нет надежного инструмента для правильного разрешения зависимостей в Python, поэтому я начал поэзию, чтобы представить сообществу Python исчерпывающий преобразователь зависимостей.

    А как насчет Pipenv?

    Вкратце: мне не нравится интерфейс командной строки, который он предоставляет, или некоторые принятые решения, и я думаю, что мы можем сделать его лучше и интуитивно понятнее. Вот несколько вещей, которые мне не нравятся.

    Разрешение зависимостей

    Разрешение зависимостей ошибочно и завершится ошибкой, даже если есть решение. Возьмем пример:

    сбой с этой ошибкой:

    в то время как Poetry предоставит вам правильный набор пакетов:

    Это возможно благодаря эффективному преобразователю зависимостей, лежащему в основе Poetry.

    oslo.utils (1.4.0) зависит от:

    • пбр (>=0,6,!=0,7,
    • Вавилон (>=1,3)
    • шесть (>=1.9.0)
    • iso8601 (>=0.1.9)
    • oslo.i18n (>=1.3.0)
    • сетевой адрес (>=0.7.12)
    • нетифейсы (>=0.10.4)

    Нас интересует pbr (>=0,6,!=0,7, .

    На этом этапе поэзия выберет pbr==0.11.1, которая является последней версией, соответствующей ограничению.

    При изучении языка программирования основное внимание уделяется пониманию синтаксиса, стиля кода и основных концепций. Со временем вы достаточно освоитесь с языком и начнете писать программы, решающие новые интересные задачи.

    Однако, когда вам нужно перейти к этому шагу, есть аспект, который можно недооценить, а именно создание правильной среды. Среда, обеспечивающая соблюдение передовых методов разработки программного обеспечения, повышающая производительность и облегчающая совместную работу. В Adaltas мы управляем несколькими проектами с открытым исходным кодом, и мы приветствуем большое количество вкладов. В основном они нацелены на платформу Node.js. Основываясь на этом опыте, мы уже разработали общие методы управления крупномасштабными проектами, написанными на Node.js.

    Еще один язык, который мы также часто используем в нашей повседневной работе в качестве консультанта по данным, — это Python. Упаковка и инструменты с Python часто описываются как громоздкие и сложные. В связи с этим в последние годы появилось несколько проектов с открытым исходным кодом, целью которых является облегчение управления пакетами Python в ваших рабочих проектах. Здесь мы увидим, как использовать два из них: Pyenv для управления и установки различных версий Python и Poetry для управления вашими пакетами и виртуальными средами. В сочетании или по отдельности они помогают создать продуктивную среду.

    Эта статья — первая из трех статей, в которых мы делимся передовым опытом.

    • Часть 1. Инициализация проекта с помощью pyenv и поэзии
    • Часть 2: модульное тестирование и принудительное выполнение коммитов
    • Часть 3. Конвейер непрерывной интеграции с GitHub Actions и публикация на PiPy

    Для установки pyenv вам потребуются некоторые зависимости для конкретной ОС. Они необходимы, так как pyenv устанавливает Python путем сборки из исходного кода. Для Ubuntu/Debian обязательно установите следующие пакеты:

    Чтобы узнать о необходимых зависимостях от вашей ОС, прочитайте эту документацию. После установки зависимостей вы можете установить pyenv. Для этого я рекомендую использовать pyenv-installer, который автоматизирует процесс.

    С этого момента вы можете установить в своей системе любые версии Python, которые пожелаете. Вы можете использовать следующую команду для всех доступных версий и разновидностей Python:

    В нашем случае мы собираемся установить классический CPython версий 3.7.10, 3.8.7, 3.9.2:

    После установки версий вы можете просмотреть их, запустив:

    Вы можете видеть, что pyenv идентифицировал недавно установленные версии Python, а также версию, установленную по умолчанию в вашей системе.Знак * перед системой означает, что используемая сейчас глобальная версия является системной версией. pyenv позволяет управлять версиями Python на разных уровнях: глобально и локально. Допустим, мы собираемся установить версию 3.7.10 в качестве нашей глобальной версии.

    Снова перечислим нашу версию:

    Вы можете видеть, что pyenv устанавливает 3.7.10 в качестве нашей глобальной версии Python. Это не изменит операций, требующих использования системной версии. Путь, который вы можете прочитать между скобками, соответствует пути, указывающему на требуемую версию Python. Как это работает? Вкратце, pyenv захватывает команды Python, используя исполняемые файлы, внедренные в ваш PATH. Затем он определяет, какую версию Python вам нужно использовать, и передает команды правильной установке Python. Не стесняйтесь читать полную документацию, чтобы лучше понять функции и возможности, предлагаемые pyenv.

    Не путайтесь в семантике. Изменение глобальной версии не повлияет на версию вашей системы. Версия системы соответствует версии, используемой вашей ОС для выполнения определенных задач или запуска фоновых процессов, которые зависят от этой конкретной версии Python. Не переключайте версию системы на другую, иначе вы можете столкнуться с рядом проблем с вашей ОС! Эта версия обычно обновляется вместе с вашей ОС. Глобальная версия — это просто версия, которую pyenv будет использовать для глобального выполнения ваших команд/программ Python.

    Poetry позволяет эффективно управлять зависимостями и пакетами в Python. Он играет ту же роль, что и setup.py или pipenv, но предлагает больше гибкости и функциональности. Вы можете объявить библиотеки, от которых зависит ваш проект, в файле pyproject.toml. Затем поэзия установит или обновит их по требованию. Кроме того, эти инструменты позволяют инкапсулировать ваш рабочий проект в изолированные среды. Наконец, вы можете использовать поэзию для прямой публикации своего пакета в Pypi.

    В качестве последнего предварительного условия мы установим поэзию, выполнив следующую команду:

    Мы увидим, как создать проект и изолировать его в среде Python с помощью pyenv и поэзии.

    Установка версии Python с помощью Pyenv

    Давайте сначала создадим каталог с именем my_awesome_project и переместимся внутрь:

    Оказавшись внутри, установите локальную версию Python, которую мы собираемся использовать (мы собираемся использовать Python 3.8.7). Это побудит поэзию использовать локальную версию Python, определенную pyenv:

    Это создает файл версии .python внутри нашего проекта. Этот файл будет прочитан pyenv и предложит ему установить определенную локальную версию Python. Следовательно, каждый каталог или файл, созданный на этом этапе, будет зависеть от локальной версии Python, а не от глобальной.

    Создайте свой проект с поэзией

    Poetry предлагает надежный интерфейс командной строки, позволяющий создавать, настраивать и обновлять проект и зависимости Python. Чтобы создать проект Python, используйте следующую команду:

    Эта команда создает каркас проекта по умолчанию. Содержание нашего нового проекта следующее:

    Обратите внимание на pyproject.toml . Здесь мы определяем все, начиная с метаданных нашего проекта, зависимостей, скриптов и многого другого. Если вы знакомы с Node.js, рассмотрите pyproject.toml как эквивалент пакета Node.js package.json .

    Мы видим несколько записей в нашем файле pyproject.toml по умолчанию.

    • [tool.poetry] : этот раздел содержит метаданные о нашем пакете. Вы можете поместить туда название пакета, краткое описание, информацию об авторе, версию вашего проекта и так далее. Все детали здесь необязательны, но потребуются, если вы решили опубликовать пакет на Pypi.
    • [tool.poetry.dependencies]: этот раздел содержит все необходимые зависимости для нашего пакета. Вы можете указать конкретные номера версий для этих пакетов ( packageX = "1.0.0" ) или использовать символы. Здесь также определяется версия Python, которую мы хотим использовать в проекте. В нашем случае python = "^3.8" указывает минимальную версию, необходимую для запуска нашего приложения. Здесь это Python 3.8, и он основан на версии нашей локальной версии, определенной с помощью pyenv.
    • [tool.poetry.dev-dependencies]: этот раздел содержит все зависимости разработчиков, которые являются пакетами, необходимыми для работы и итерации в этом проекте. Тем не менее, эти зависимости не требуются для запуска приложения и не будут загружаться при сборке пакета.
    • [build-system]: не трогайте этот раздел, если вы не обновили версию поэзии.

    вы можете увидеть полный список доступных записей для файла pyproject.toml здесь

    Установите и активируйте виртуальную среду

    Здесь у вас есть два подхода: знаете ли вы заранее все зависимости, которые вам нужны, и вы можете напрямую изменить файл .toml соответствующим образом, или вы решите добавить позже, когда это необходимо. В нашем примере мы собираемся постепенно добавлять наши зависимости при написании кода.Следовательно, нам просто нужно инициализировать проект и создать виртуальную среду. Для этого выполните команду:

    Во-первых, виртуальная среда создается и хранится вне проекта. Немного похоже на то, что мы имеем при использовании conda. Действительно, вместо создания папки, содержащей ваши библиотеки зависимостей (как это делает virtualenv), поэзия создает среду на глобальном системном пути (по умолчанию .cache/). Такое разделение задач позволяет отделить ваш проект от исходного кода зависимостей.

    Вы можете создать свою виртуальную среду внутри вашего проекта или в любых других каталогах. Для этого вам нужно отредактировать конфигурацию поэзии. Следуйте этой документации для получения более подробной информации.

    Во-вторых, поэзия прочитает файл pyproject.toml и установит все зависимости, указанные в этом файле. Если не указано, поэзия загрузит последнюю версию пакетов. В конце операции создается файл поэзии.lock. Он содержит все пакеты и их точные версии. Имейте в виду, что если файл поэзии.lock уже присутствует, номера версий, определенные в нем, имеют приоритет над тем, что определено в pyproject.toml. Наконец, вы должны зафиксировать файл поэзии.lock в репозитории вашего проекта, чтобы все соавторы, работающие над проектом, использовали одни и те же версии зависимостей.

    Теперь давайте активируем только что созданную среду с помощью следующей команды:

    Эта команда создает дочерний процесс, который наследует родительскую оболочку, но не изменяет свою среду. Он инкапсулирует и ограничивает любые изменения, которые вы будете выполнять в среде проекта.

    Создайте наш репозиторий git

    На последнем этапе мы создадим репозиторий git, добавим файлы README.md и .gitignore и отправим все в наш удаленный репозиторий.

    Здесь мы увидели, как устанавливать и управлять различными версиями Python на нашем компьютере с помощью pyenv. Мы продемонстрировали, как использовать pyenv local для установки конкретной версии Python в вашем проекте, а затем создать виртуальную среду с помощью поэзии. Использование поэзии действительно упрощает процесс творчества, предлагая простой и широкий проектный каркас. Кроме того, он включает минимальные системные требования сборки, определенные в PEP 518.

    В следующей статье мы более подробно рассмотрим наш проект. Мы напишем код с соответствующими модульными тестами и посмотрим, как мы можем использовать поэзию для добавления ожидаемых зависимостей и запуска тестов. Наконец, мы собираемся пойти немного дальше и установить все необходимые зависимости с помощью поэзии, чтобы помочь нам применять передовой опыт с нашими коммитами git при использовании проекта Python.

    Читайте также: