python-poetry / python-poetry/poetry-plugin-shell

Cannot install poetry shell in latest brew poetry

Open
#42 4 comments 15 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
141
Forks
10
Avg merge
59m
Merged PRs (30d)
3

Description

As I can see poetry arrives with its own python(not sure about that, but path in error suggest, that is the case) with incompatible set of libraries for some reason
How to reproduce:

  1. Install latest poetry via brew:
brew install poetry
==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
==> Downloading https://ghcr.io/v2/homebrew/core/poetry/manifests/2.1.1
Already downloaded: /Users/keramblock/Library/Caches/Homebrew/downloads/018b2611a6610c5f611e20d5b9f5b630d9184d7cea0cd87592b31232a197639c--poetry-2.1.1.bottle_manifest.json
==> Fetching poetry
==> Downloading https://ghcr.io/v2/homebrew/core/poetry/blobs/sha256:76f0d3cfbe72bf708b1850e114b636e08adf1d25ea6012a435ac3732b0fe557d
Already downloaded: /Users/keramblock/Library/Caches/Homebrew/downloads/52239768717780f3cfa3f16b57a77b4334619b3c0f5448ce34554a8778ff5791--poetry--2.1.1.arm64_sequoia.bottle.tar.gz
==> Pouring poetry--2.1.1.arm64_sequoia.bottle.tar.gz
==> Caveats
zsh completions have been installed to:
  /opt/homebrew/share/zsh/site-functions
==> Summary
🍺  /opt/homebrew/Cellar/poetry/2.1.1: 1,472 files, 18.8MB
==> Running `brew cleanup poetry`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
  1. Try to install shell plugin:
poetry self add poetry-plugin-shell
Using version ^1.0.1 for poetry-plugin-shell

Updating dependencies
Resolving dependencies... (0.2s)

Package operations: 3 installs, 24 updates, 0 removals

  - Downgrading certifi (2025.1.31 -> 2024.2.2)
  - Downgrading idna (3.10 -> 3.7): Failed

  CalledProcessError

  Command '['/opt/homebrew/Cellar/poetry/2.1.1/libexec/bin/python', '/opt/homebrew/Cellar/poetry/2.1.1/libexec/lib/python3.13/site-packages/virtualenv/seed/wheels/embed/pip-25.0.1-py3-none-any.whl/pip', 'uninstall', 'idna', '-y']' returned non-zero exit status 1.

  at /opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py:579 in run
       575│             # We don't call process.wait() as .__exit__ does that for us.
       576│             raise
       577│         retcode = process.poll()
       578│         if check and retcode:
    →  579│             raise CalledProcessError(retcode, process.args,
       580│                                      output=stdout, stderr=stderr)
       581│     return CompletedProcess(process.args, retcode, stdout, stderr)
       582│
       583│

The following error occurred when trying to handle this error:


  EnvCommandError

  Command ['/opt/homebrew/Cellar/poetry/2.1.1/libexec/bin/python', '/opt/homebrew/Cellar/poetry/2.1.1/libexec/lib/python3.13/site-packages/virtualenv/seed/wheels/embed/pip-25.0.1-py3-none-any.whl/pip', 'uninstall', 'idna', '-y'] errored with the following return code 1

  Output:
  Found existing installation: idna 3.10
  error: uninstall-no-record-file

  × Cannot uninstall idna 3.10
  ╰─> The package's contents are unknown: no RECORD file was found for idna.

  hint: The package was installed by brew. You should check if it can uninstall the package.


  at /opt/homebrew/Cellar/poetry/2.1.1/libexec/lib/python3.13/site-packages/poetry/utils/env/base_env.py:434 in _run
      430│                 output = subprocess.check_output(
      431│                     cmd, stderr=stderr, env=env, text=True, encoding=encoding, **kwargs
      432│                 )
      433│         except CalledProcessError as e:
    → 434│             raise EnvCommandError(e)
      435│
      436│         return output
      437│
      438│     def execute(self, bin: str, *args: str, **kwargs: Any) -> int:

Cannot install idna.

Expected result:
poetry shell plugin is installed

Actual result:
Shell tries to downgrade idna library and fails

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the Homebrew Poetry 2.1.1 setup and run poetry self add poetry-plugin-shell, then inspect poetry/utils/env/base_env.py at the reported _run path and the pip uninstall error. Done means the plugin installs successfully without failing while replacing the brew-installed idna package.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, shell
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.