Poetry official documentation strictly recommends sticking with the official installer. However, homebrew has poetry formulae.
brew install poetry
Usually, I like to keep everything I can in homebrew to manage installations easily.
What is the drawback and risks of installing poetry using homebrew instead of the recommended installation script?
The drawback is that poetry
will be unable to upgrade itself (I've no idea what'd actually happen), and you'll not be able to install specific poetry versions. Homebrew installed poetry will probably also use the Homebrew-installed Python environment, etc, instead of having its own isolated venv
to execute from.
If you use homebrew to install poetry, don't try to manage that installation any way outside of homebrew. Otherwise, it's probably fine.
Other misc drawbacks include:
edit
My personal recommendation is to install pipx
using homebrew, and then install poetry
via pipx
(as Poetry themselves now also recommend):
brew install pipx
pipx ensurepath
pipx install poetry # latest version
pipx install poetry==1.2.2 [email protected]
pipx install poetry==1.3.2 [email protected]
pipx install poetry==1.6.1 [email protected]
so you'll get something like:
❯ pipx list
venvs are in /Users/redacted/.local/pipx/venvs
apps are exposed on your $PATH at /Users/redacted/Code/dotfiles/bin
package hatch 1.7.0, installed using Python 3.11.5
- hatch
package poetry 1.2.2, installed using Python 3.11.5
- poetry
package poetry 1.3.2 ([email protected]), installed using Python 3.11.5
- [email protected]
package poetry 1.6.1 ([email protected]), installed using Python 3.11.5
- [email protected]
❯ poetry --version
Poetry (version 1.2.2)
❯ [email protected] --version
Poetry (version 1.3.2)
e.g. via:
brew install pipx
pipx ensurepath
pipx install poetry # latest version
pipx install poetry==1.2.2 [email protected]
pipx install poetry==1.3.2 [email protected]
pipx install poetry==1.6.1 [email protected]
Poetry is still under very active development, and its API is not very stable. This gives me full control of what version to use/when, e.g. across different projects.