python-poetry / python-poetry/poetry

virtualenvs.create=false && virtualenvs.use-poetry-python=false config not working on GitHub actions

Open
#10,295 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/bug status/triage
Dominant language
Python
Stars
34.3k
Forks
2.5k
Avg merge
2d 19h
Merged PRs (30d)
30

Description

Description

In GitHub actions I am using pipx to install poetry. I am setting the POETRY_VIRTUALENVS_CREATE=false and POETRY_VIRTUALENVS_USE_POETRY_PYTHON=false environment variables in the GitHub action job. I am also using actions/setup-python to install my desired version of python.

When I try to run poetry env info or poetry install, I see that poetry is using the global python (not the one from actions/setup-python).

My goal is to use poetry to install my project into the site-packages from actions/setup-python so that I don't have to prefix commands with poetry run ... or activate the poetry env.

Here's my GitHub Action job:

name: Poetry with pipx

on:
  push:
  workflow_dispatch:

jobs:
  demo:
    runs-on: ubuntu-latest
    env:
      POETRY_VIRTUALENVS_CREATE: "false"
      POETRY_VIRTUALENVS_USE_POETRY_PYTHON: "false"
    steps:
      - uses: actions/checkout@v4

      - name: Install poetry with pipx
        run: pipx install poetry

      # Installing with pip has the same effect
      # - name: Install poetry with pip
      #   run: pip install poetry

      - uses: actions/setup-python@v5
        with:
          python-version: '3.10'

      - name: Get poetry env info
        run: poetry -vvv env info

      - name: Poetry Config
        run: poetry config --list

      - name: poetry install
        run: poetry -vvv install --no-root
Workarounds

Run actions/setup-python first, then use pip install poetry.

This works because we install python using setup-actions. Then we use that python environment to install poetry. So when poetry runs it uses the correct python environment.

However this is not desirable because we can't specify the cache: "poetry" input on actions/setup-python. The setup action will fail if poetry is not installed first.

Poetry Installation Method

pipx

Operating System

ubuntu 24.04.2

Poetry Version

2.1.1

Poetry Configuration
cache-dir = "/home/runner/.cache/pypoetry"
data-dir = "/home/runner/.local/share/pypoetry"
installer.max-workers = null
installer.no-binary = null
installer.only-binary = null
installer.parallel = true
installer.re-resolve = true
keyring.enabled = true
python.installation-dir = "{data-dir}/python"  # /home/runner/.local/share/pypoetry/python
requests.max-retries = 0
solver.lazy-wheel = true
system-git-client = false
virtualenvs.create = false
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs"  # /home/runner/.cache/pypoetry/virtualenvs
virtualenvs.prompt = "{project_name}-py{python_version}"
virtualenvs.use-poetry-python = false
Python Sysconfig
sysconfig.log
Paste the output of 'python -m sysconfig', over this line.
Example pyproject.toml
[project]
name = "poetry-github-actions"
version = "0.1.0"
description = ""
authors = [
    {name = "Your Name",email = "you@example.com"}
]
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
    "requests (>=2.32.3,<3.0.0)",
    "certifi (>=2025.1.31,<2026.0.0)"
]

[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
Poetry Runtime Logs
poetry-runtime.log
Loading configuration file /home/runner/.config/pypoetry/config.toml
[findpython:findpython] Running script: ['/opt/hostedtoolcache/Python/3.10.16/x64/bin/python', '-EsSc', 'import sys; print(sys.executable)']
Found: /opt/hostedtoolcache/Python/3.10.16/x64/bin/python
[findpython:findpython] Running script: ['/opt/hostedtoolcache/Python/3.10.16/x64/bin/python', '-EsSc', 'import platform; print(platform.python_version())']
Skipping virtualenv creation, as specified in config file.
Checking keyring availability: Checking if keyring is available
[keyring:keyring.backend] Loading KWallet
[keyring:keyring.backend] Loading SecretService
[keyring:keyring.backend] Loading Windows
[keyring:keyring.backend] Loading chainer
[keyring:keyring.backend] Loading libsecret
[keyring:keyring.backend] Loading macOS
Backend 'fail Keyring' is not suitable
No valid keyring backend was found
Unavailable
Installing dependencies from lock file

Finding the necessary packages for the current system

Package operations: 1 install, 4 updates, 0 removals

- Updating certifi (2023.11.17 -> 2025.1.31)
Creating new session for pypi.org
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (1): pypi.org:443
- Installing charset-normalizer (3.4.1)
- Updating idna (3.6 -> 3.10)
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (2): pypi.org:443
- Updating urllib3 (2.0.7 -> 2.3.0)
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (3): pypi.org:443
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (4): pypi.org:443
[urllib3:urllib3.connectionpool] https://pypi.org:443 "GET /pypi/certifi/2025.1.31/json HTTP/1.1" 200 1731
[filelock:filelock] Attempting to acquire lock 139789290375120 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/f/7/b/5/2/f7b520d8734e4e369b28e0324bcdf9f273e547c575cf469170f3a627.lock
[urllib3:urllib3.connectionpool] https://pypi.org:443 "GET /pypi/idna/3.10/json HTTP/1.1" 200 4710
[filelock:filelock] Lock 139789290375120 acquired on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/f/7/b/5/2/f7b520d8734e4e369b28e0324bcdf9f273e547c575cf469170f3a627.lock
[filelock:filelock] Attempting to release lock 139789290375120 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/f/7/b/5/2/f7b520d8734e4e369b28e0324bcdf9f273e547c575cf469170f3a627.lock
[urllib3:urllib3.connectionpool] https://pypi.org:443 "GET /pypi/charset-normalizer/3.4.1/json HTTP/1.1" 200 26475
[urllib3:urllib3.connectionpool] https://pypi.org:443 "GET /pypi/urllib3/2.3.0/json HTTP/1.1" 200 3255
[filelock:filelock] Attempting to acquire lock 139789290056080 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/2/d/8/0/1/2d8012d5f080918089ce99b60fe6c262bcbb196423500b956db8be28.lock
[filelock:filelock] Attempting to acquire lock 139789290000448 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/8/8/f/0/3/88f0362ee289b5db54ee7a5bd4c28ca2e87b4addef4f678ec8f92638.lock
[filelock:filelock] Lock 139789290375120 released on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/f/7/b/5/2/f7b520d8734e4e369b28e0324bcdf9f273e547c575cf469170f3a627.lock
[filelock:filelock] Attempting to acquire lock 139789290049120 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/3/5/7/a/f/357af64e90923ea260f670309231e9[14](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:15)276b01da458a21508179dcab.lock
[filelock:filelock] Lock 139789290049120 acquired on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/3/5/7/a/f/357af64e90923ea260f670309231e914276b01da458a2[15](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:16)08179dcab.lock
[filelock:filelock] Attempting to release lock 139789290049120 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/3/5/7/a/f/357af64e90923ea260f670309231e914276b01da458a21508179dcab.lock
[filelock:filelock] Lock 139789290049120 released on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/3/5/7/a/f/357af64e90923ea260f670309231e914276b01da458a21508179dcab.lock
[filelock:filelock] Lock 139789290056080 acquired on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/2/d/8/0/1/2d8012d5f080918089ce99b60fe6c262bcbb196423500b956db8be28.lock
[filelock:filelock] Lock 139789290000448 acquired on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/8/8/f/0/3/88f0362ee289b5db54ee7a5bd4c28ca2e87b4addef4f678ec8f92638.lock
[filelock:filelock] Attempting to release lock 139789290000448 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/8/8/f/0/3/88f0362ee289b5db54ee7a5bd4c28ca2e87b4addef4f678ec8f92638.lock
[filelock:filelock] Lock 139789290000448 released on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/8/8/f/0/3/88f0362ee289b5db54ee7a5bd4c28ca2e87b4addef4f678ec8f92638.lock
[filelock:filelock] Attempting to release lock 139789290056080 on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/2/d/8/0/1/2d8012d5f080918089ce99b60fe6c262bcbb196423500b956db8be28.lock
[filelock:filelock] Lock 139789290056080 released on /home/runner/.cache/pypoetry/cache/repositories/PyPI/_http/2/d/8/0/1/2d8012d5f080918089ce99b60fe6c262bcbb196423500b956db8be28.lock
Creating new session for files.pythonhosted.org
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (1): files.pythonhosted.org:443
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-win32.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-win32.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-win32.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl as this is not supported by the current environment
[urllib3:urllib3.connectionpool] https://files.pythonhosted.org:443 "GET /packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl HTTP/1.1" 200 70442
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl as this is not supported by the current environment
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (2): files.pythonhosted.org:443
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-win32.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-win32.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl as this is not supported by the current environment
[filelock:filelock] Attempting to acquire lock 139789277013600 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/8/8/0/f/1/880f1582dd670fc7bb7231974c67fd946d7[16](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:17)85651b47a71086ce5a2.lock
[filelock:filelock] Lock 139789277013600 acquired on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/8/8/0/f/1/880f1582dd670fc7bb7231974c67fd946d71685651b47a71086ce5a2.lock
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-win32.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-manylinux_2_[17](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:18)_aarch64.manylinux2014_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl as this is not supported by the current environment
[filelock:filelock] Attempting to release lock 139789277013600 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/8/8/0/f/1/880f1582dd670fc7bb7231974c67fd946d71685651b47a71086ce5a2.lock
[urllib3:urllib3.connectionpool] https://files.pythonhosted.org:443 "GET /packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl HTTP/1.1" 200 166393
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl as this is not supported by the current environment
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-win32.whl as this is not supported by the current environment
[filelock:filelock] Lock 139789277013600 released on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/8/8/0/f/1/880f1582dd670fc7bb7231974c67fd946d71685651b47a71086ce5a2.lock
Skipping wheel charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl as this is not supported by the current environment
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (3): files.pythonhosted.org:443
[urllib3:urllib3.connectionpool] https://files.pythonhosted.org:443 "GET /packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl HTTP/1.1" 200 128369
[filelock:filelock] Attempting to acquire lock 139789277469232 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/b/9/b/f/6/b9bf667dd758080da4c37b4d8022991a332c09abde75bab1f469[18](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:19)ac.lock
[filelock:filelock] Attempting to acquire lock 139789277467456 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/1/d/7/e/a/1d7ea1d874ab2fc4aebdaa4b33e3992c69a31e2bad4b1fd25431c4b5.lock
[filelock:filelock] Lock 139789277467456 acquired on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/1/d/7/e/a/1d7ea1d874ab2fc4aebdaa4b33e3992c69a31e2bad4b1fd25431c4b5.lock
[filelock:filelock] Attempting to release lock 139789277467456 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/1/d/7/e/a/1d7ea1d874ab2fc4aebdaa4b33e3992c69a31e2bad4b1fd25431c4b5.lock
[urllib3:urllib3.connectionpool] https://files.pythonhosted.org:443 "GET /packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux[20](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:21)14_x86_64.whl HTTP/1.1" 200 145268
[filelock:filelock] Lock 139789277469232 acquired on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/b/9/b/f/6/b9bf667dd758080da4c37b4d80[22](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:23)991a332c09abde75bab1f46918ac.lock
[filelock:filelock] Attempting to release lock 139789277469[23](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:24)2 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/b/9/b/f/6/b9bf667dd758080da4c37b4d8022991a332c09abde75bab1f46918ac.lock
[filelock:filelock] Lock 139789277469232 released on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/b/9/b/f/6/b9bf667dd758080da4c37b4d8022991a332c09abde75bab1f46918ac.lock
[filelock:filelock] Attempting to acquire lock 139789277466544 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/d/a/b/3/4/dab34ed03eb5a0fe4599b06edc981517c200cdfc[25](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:26)c05949ab08a5aa.lock
[filelock:filelock] Lock 139789277467456 released on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/1/d/7/e/a/1d7ea1d874ab2fc4aebdaa4b33e3992c69a31e2bad4b1fd25431c4b5.lock
[filelock:filelock] Lock 139789[27](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:28)7466544 acquired on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/d/a/b/3/4/dab34ed03eb5a0fe4599b06edc981517c200cdfc25c05949ab08a5aa.lock
[filelock:filelock] Attempting to release lock 139789277466544 on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/d/a/b/3/4/dab34ed03eb5a0fe4599b06edc981517c200cdfc25c05949ab08a5aa.lock
[filelock:filelock] Lock 139789277466544 released on /home/runner/.cache/pypoetry/cache/repositories/_default_cache/_http/d/a/b/3/4/dab34ed03eb5a0fe4599b06edc981517c200cdfc25c05949ab08a5aa.lock

Stack trace:

2  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/base_env.py:430 in _run
    4[28](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:29)│             else:
    429│                 encoding = "locale" if sys.version_info >= (3, 10) else None
  → 430│                 output = subprocess.check_output(
    431│                     cmd, stderr=stderr, env=env, text=True, encoding=encoding, **kwargs
    432│                 )

1  /usr/lib/python3.12/subprocess.py:466 in check_output
     464│         kwargs['input'] = empty
     465│ 
  →  466│     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
     467│                **kwargs).stdout
     468│ 

CalledProcessError

Command '['/usr/bin/python3.12', '-m', 'pip', 'uninstall', 'idna', '-y']' returned non-zero exit status 1.

at /usr/lib/python3.12/subprocess.py:571 in run
     567│             # We don't call process.wait() as .__exit__ does that for us.
     568│             raise
     569│         retcode = process.poll()
     570│         if check and retcode:
  →  571│             raise CalledProcessError(retcode, process.args,
     572│                                      output=stdout, stderr=stderr)
     573│     return CompletedProcess(process.args, retcode, stdout, stderr)
     574│ 
     575│ 

The following error occurred when trying to handle this error:


Stack trace:

9  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:[29](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:30)2 in _execute_operation
    290│ 
    291│             try:
  → 292│                 result = self._do_execute_operation(operation)
    293│             except EnvCommandError as e:
    294│                 if e.e.returncode == -2:

8  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:413 in _do_execute_operation
    411│             return 0
    412│ 
  → 413│         result: int = getattr(self, f"_execute_{method}")(operation)
    414│ 
    415│         if result != 0:

7  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:544 in _execute_update
    542│ 
    543│     def _execute_update(self, operation: Install | Update) -> int:
  → 544│         status_code = self._update(operation)
    545│ 
    546│         self._save_url_reference(operation)

6  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:598 in _update
    596│ 
    597│     def _update(self, operation: Install | Update) -> int:
  → 598│         return self._install(operation)
    599│ 
    600│     def _remove(self, package: Package) -> int:

5  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:588 in _install
    586│                 # the new package can't be installed
    587│                 assert isinstance(operation, Update)
  → 588│                 self._remove(operation.initial_package)
    589│ 
    590│             self._wheel_installer.install(archive)

4  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:608 in _remove
    606│ 
    607│         try:
  → 608│             return self.run_pip("uninstall", package.name, "-y")
    609│         except CalledProcessError as e:
    610│             if "not installed" in str(e):

3  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:435 in run_pip
    433│     def run_pip(self, *args: Any, **kwargs: Any) -> int:
    434│         try:
  → 435│             self._env.run_pip(*args, **kwargs)
    436│         except EnvCommandError as e:
    437│             output = decode(e.e.output)

2  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/base_env.py:394 in run_pip
    392│         pip = self.get_pip_command()
    393│         cmd = pip + list(args)
  → 394│         return self._run(cmd, **kwargs)
    395│ 
    396│     def run_python_script(self, content: str, **kwargs: Any) -> str:

1  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/generic_env.py:99 in _run
     97│ 
     98│     def _run(self, cmd: list[str], **kwargs: Any) -> str:
  →  99│         return super(VirtualEnv, self)._run(cmd, **kwargs)
    100│ 
    101│     def is_venv(self) -> bool:

EnvCommandError

Command ['/usr/bin/python3.12', '-m', 'pip', 'uninstall', 'idna', '-y'] errored with the following return code 1

Output:
Found existing installation: idna 3.6
ERROR: Cannot uninstall idna 3.6, RECORD file not found. Hint: The package was installed by debian.


at /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/base_env.py:434 in _run
    4[30](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:31)│                 output = subprocess.check_output(
    4[31](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:32)│                     cmd, stderr=stderr, env=env, text=True, encoding=encoding, **kwargs
    4[32](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:33)│                 )
    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.


Stack trace:

2  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/base_env.py:430 in _run
    428│             else:
    429│                 encoding = "locale" if sys.version_info >= (3, 10) else None
  → 430│                 output = subprocess.check_output(
    431│                     cmd, stderr=stderr, env=env, text=True, encoding=encoding, **kwargs
    432│                 )

1  /usr/lib/python3.12/subprocess.py:466 in check_output
     464│         kwargs['input'] = empty
     465│ 
  →  466│     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
     467│                **kwargs).stdout
     468│ 

CalledProcessError

Command '['/usr/bin/python3.12', '-m', 'pip', 'uninstall', 'urllib3', '-y']' returned non-zero exit status 1.

at /usr/lib/python3.12/subprocess.py:571 in run
     567│             # We don't call process.wait() as .__exit__ does that for us.
     568│             raise
     569│         retcode = process.poll()
     570│         if check and retcode:
  →  571│             raise CalledProcessError(retcode, process.args,
     572│                                      output=stdout, stderr=stderr)
     573│     return CompletedProcess(process.args, retcode, stdout, stderr)
     574│ 
     575│ 

The following error occurred when trying to handle this error:


Stack trace:

9  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:292 in _execute_operation
    290│ 
    291│             try:
  → 292│                 result = self._do_execute_operation(operation)
    293│             except EnvCommandError as e:
    294│                 if e.e.returncode == -2:

8  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:413 in _do_execute_operation
    411│             return 0
    412│ 
  → 413│         result: int = getattr(self, f"_execute_{method}")(operation)
    414│ 
    415│         if result != 0:

7  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:544 in _execute_update
    542│ 
    543│     def _execute_update(self, operation: Install | Update) -> int:
  → 544│         status_code = self._update(operation)
    545│ 
    546│         self._save_url_reference(operation)

6  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:598 in _update
    596│ 
    597│     def _update(self, operation: Install | Update) -> int:
  → 598│         return self._install(operation)
    599│ 
    600│     def _remove(self, package: Package) -> int:

5  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:588 in _install
    586│                 # the new package can't be installed
    587│                 assert isinstance(operation, Update)
  → 588│                 self._remove(operation.initial_package)
    589│ 
    590│             self._wheel_installer.install(archive)

4  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:608 in _remove
    606│ 
    607│         try:
  → 608│             return self.run_pip("uninstall", package.name, "-y")
    609│         except CalledProcessError as e:
    610│             if "not installed" in str(e):

3  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:435 in run_pip
    4[33](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:34)│     def run_pip(self, *args: Any, **kwargs: Any) -> int:
    4[34](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:35)│         try:
  → 435│             self._env.run_pip(*args, **kwargs)
    436│         except EnvCommandError as e:
    437│             output = decode(e.e.output)

2  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/base_env.py:394 in run_pip
    392│         pip = self.get_pip_command()
    393│         cmd = pip + list(args)
  → 394│         return self._run(cmd, **kwargs)
    395│ 
    396│     def run_python_script(self, content: str, **kwargs: Any) -> str:

1  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/generic_env.py:99 in _run
     97│ 
     98│     def _run(self, cmd: list[str], **kwargs: Any) -> str:
  →  99│         return super(VirtualEnv, self)._run(cmd, **kwargs)
    100│ 
    101│     def is_venv(self) -> bool:

EnvCommandError

Command ['/usr/bin/python3.12', '-m', 'pip', 'uninstall', 'urllib3', '-y'] errored with the following return code 1

Output:
Found existing installation: urllib3 2.0.7
ERROR: Cannot uninstall urllib3 2.0.7, RECORD file not found. Hint: The package was installed by debian.


at /opt/pipx/venvs/poetry/lib/python3.12/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)
    4[35](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:36)│ 
    436│         return output
    437│ 
    438│     def execute(self, bin: str, *args: str, **kwargs: Any) -> int:

Cannot install urllib3.


Stack trace:

2  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/base_env.py:430 in _run
    428│             else:
    429│                 encoding = "locale" if sys.version_info >= (3, 10) else None
  → 430│                 output = subprocess.check_output(
    431│                     cmd, stderr=stderr, env=env, text=True, encoding=encoding, **kwargs
    432│                 )

1  /usr/lib/python3.12/subprocess.py:466 in check_output
     464│         kwargs['input'] = empty
     465│ 
  →  466│     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
     467│                **kwargs).stdout
     468│ 

CalledProcessError

Command '['/usr/bin/python3.12', '-m', 'pip', 'uninstall', 'certifi', '-y']' returned non-zero exit status 2.

at /usr/lib/python3.12/subprocess.py:571 in run
     567│             # We don't call process.wait() as .__exit__ does that for us.
     568│             raise
     569│         retcode = process.poll()
     570│         if check and retcode:
  →  571│             raise CalledProcessError(retcode, process.args,
     572│                                      output=stdout, stderr=stderr)
     573│     return CompletedProcess(process.args, retcode, stdout, stderr)
     574│ 
     575│ 

The following error occurred when trying to handle this error:


Stack trace:

9  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:292 in _execute_operation
    290│ 
    291│             try:
  → 292│                 result = self._do_execute_operation(operation)
    293│             except EnvCommandError as e:
    294│                 if e.e.returncode == -2:

8  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:413 in _do_execute_operation
    411│             return 0
    412│ 
  → 413│         result: int = getattr(self, f"_execute_{method}")(operation)
    414│ 
    415│         if result != 0:

7  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:544 in _execute_update
    542│ 
    543│     def _execute_update(self, operation: Install | Update) -> int:
  → 544│         status_code = self._update(operation)
    545│ 
    546│         self._save_url_reference(operation)

6  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:598 in _update
    596│ 
    597│     def _update(self, operation: Install | Update) -> int:
  → 598│         return self._install(operation)
    599│ 
    600│     def _remove(self, package: Package) -> int:

5  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:588 in _install
    586│                 # the new package can't be installed
    587│                 assert isinstance(operation, Update)
  → 588│                 self._remove(operation.initial_package)
    589│ 
    590│             self._wheel_installer.install(archive)

4  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:608 in _remove
    606│ 
    607│         try:
  → 608│             return self.run_pip("uninstall", package.name, "-y")
    609│         except CalledProcessError as e:
    610│             if "not installed" in str(e):

3  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/executor.py:435 in run_pip
    433│     def run_pip(self, *args: Any, **kwargs: Any) -> int:
    434│         try:
  → 435│             self._env.run_pip(*args, **kwargs)
    4[36](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:37)│         except EnvCommandError as e:
    437│             output = decode(e.e.output)

2  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/base_env.py:394 in run_pip
    392│         pip = self.get_pip_command()
    393│         cmd = pip + list(args)
  → 394│         return self._run(cmd, **kwargs)
    395│ 
    396│     def run_python_script(self, content: str, **kwargs: Any) -> str:

1  /opt/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/utils/env/generic_env.py:99 in _run
     97│ 
     98│     def _run(self, cmd: list[str], **kwargs: Any) -> str:
  →  99│         return super(VirtualEnv, self)._run(cmd, **kwargs)
    100│ 
    101│     def is_venv(self) -> bool:

EnvCommandError

Command ['/usr/bin/python3.12', '-m', 'pip', 'uninstall', 'certifi', '-y'] errored with the following return code 2

Output:
Found existing installation: certifi 2023.11.17
Uninstalling certifi-2023.11.17:
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.12/shutil.py", line 886, in move
    os.rename(src, real_dst)
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3/dist-packages/certifi' -> '/tmp/pip-uninstall-0cec4zzx'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/uninstall.py", line 105, in run
    uninstall_pathset = req.uninstall(
                        ^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 727, in uninstall
    uninstalled_pathset.remove(auto_confirm, verbose)
  File "/usr/lib/python3/dist-packages/pip/_internal/req/req_uninstall.py", line 380, in remove
    moved.stash(path)
  File "/usr/lib/python3/dist-packages/pip/_internal/req/req_uninstall.py", line 271, in stash
    renames(path, new_path)
  File "/usr/lib/python3/dist-packages/pip/_internal/utils/misc.py", line 358, in renames
    shutil.move(old, new)
  File "/usr/lib/python3.12/shutil.py", line 904, in move
    rmtree(src)
  File "/usr/lib/python3.12/shutil.py", line 785, in rmtree
    _rmtree_safe_fd(fd, path, onexc)
  File "/usr/lib/python3.12/shutil.py", line 686, in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onexc)
  File "/usr/lib/python3.12/shutil.py", line 717, in _rmtree_safe_fd
    onexc(os.unlink, fullname, err)
  File "/usr/lib/python3.12/shutil.py", line 715, in _rmtree_safe_fd
    os.unlink(entry.name, dir_fd=topfd)
PermissionError: [Errno 13] Permission denied: '__main__.cpython-312.pyc'


at /opt/pipx/venvs/poetry/lib/python3.12/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
    4[37](https://github.com/experian-test-security-org/jon-test-github-actions/actions/runs/14047438867/job/39331183183#step:9:38)│ 
    438│     def execute(self, bin: str, *args: str, **kwargs: Any) -> int:

Cannot install certifi.

Contributor guide

Open the contributing guide

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 issue using the provided GitHub Actions job, environment variables, Poetry configuration, and runtime log. Start by tracing how Poetry discovers Python when virtualenv creation and use-poetry-python are disabled; done means the setup-python interpreter is selected while the workflow remains compatible with setup-python's Poetry cache.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
ci-cd, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.