Skip to content

RuntimeError: config set has been marked final and cannot be extended #3006

Closed

Description

@m3talstorm

Issue

Describe what's the expected behaviour and what you're observing.

Getting a RuntimeError: config set has been marked final and cannot be extended at tox startup

Environment

Provide at least:

Better example at: #3006 (comment)

  • OS: A Gitlab runner using an image based of:
FROM registry.<local>/docker/library/python:3.11-bullseye

WORKDIR /

# Include external env vars into build context
ARG PYPI_ADDRESS
ARG PYPI_USERNAME
ARG PYPI_PASSWORD

# Python runtime config
ENV PYTHONIOENCODING utf-8
ENV PYTHONUNBUFFERED 1
ENV PYTHONOPTIMIZE 1

ENV PIP_TRUSTED_HOST ${PYPI_ADDRESS}
ENV PIP_INDEX https://${PYPI_USERNAME}:${PYPI_PASSWORD}@${PYPI_ADDRESS}/runner/org/
ENV PIP_INDEX_URL https://${PYPI_USERNAME}:${PYPI_PASSWORD}@${PYPI_ADDRESS}/runner/org/+simple/
ENV PIP_EXTRA_INDEX_URL https://pypi.org/simple

# Virtualenv stuff
ENV VIRTUAL_ENV=/venv

RUN curl -o virtualenv.pyz https://bootstrap.pypa.io/virtualenv.pyz
RUN python3.11 /virtualenv.pyz $VIRTUAL_ENV --pip=embed --setuptools=embed --wheel=embed --no-periodic-update

ENV PATH="$VIRTUAL_ENV/bin:$PATH"

COPY requirements.txt .
RUN pip --version
RUN python --version
RUN pip install --upgrade --cache-dir=.pip -r requirements.txt && rm -rf .pip
  • requirements.txt contains:
setuptools==67.7.2
wheel==0.40.0
pytest==7.3.0
pytest-cov==4.0.0
pytest-sugar==0.9.6
coverage==7.2.5
pip==23.1.2
tox==4.5.1
devpi-client==6.0.4

(We have seen this in older versions of Tox and Python)

Output of running tox

Provide the output of tox -rvv:

tox -vvvvv
ROOT: 170 D setup logging to NOTSET on pid 30 [tox/report.py:221]
py311: 255 I find interpreter for spec PythonSpec(major=3, minor=11) [virtualenv/discovery/builtin.py:56]
py311: 255 I proposed PythonInfo(spec=CPython3.11.2.final.0-64, exe=/usr/local/bin/python, platform=linux, version='3.11.2 (main, Mar 23 2023, 17:12:29) [GCC 10.2.1 20210110]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63]
py311: 255 D accepted PythonInfo(spec=CPython3.11.2.final.0-64, exe=/usr/local/bin/python, platform=linux, version='3.11.2 (main, Mar 23 2023, 17:12:29) [GCC 10.2.1 20210110]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
py311: 257 D filesystem is case-sensitive [virtualenv/info.py:24]
py311: 291 I create virtual environment via CPython3Posix(dest=/builds/<org>/<project>/.tox/py311, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48]
py311: 291 D create folder /builds/<org>/<project>/.tox/py311/bin [virtualenv/util/path/_sync.py:9]
py311: 291 D create folder /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py311: 292 D write /builds/<org>/<project>/.tox/py311/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py311: 292 D 	home = /usr/local/bin [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D 	version_info = 3.11.2.final.0 [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D 	virtualenv = 20.21.0 [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D 	base-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D 	base-exec-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D 	base-executable = /usr/local/bin/python [virtualenv/create/pyenv_cfg.py:34]
py311: 292 D symlink /usr/local/bin/python to /builds/<org>/<project>/.tox/py311/bin/python [virtualenv/util/path/_sync.py:28]
py311: 293 D create virtualenv import hook file /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89]
py311: 293 D create /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92]
py311: 293 D ============================== target debug ============================== [virtualenv/run/session.py:50]
py311: 293 D debug via /builds/<org>/<project>/.tox/py311/bin/python /usr/local/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:193]
py311: 293 D {
  "sys": {
    "executable": "/builds/<org>/<project>/.tox/py311/bin/python",
    "_base_executable": "/usr/local/bin/python3.11",
    "prefix": "/builds/<org>/<project>/.tox/py311",
    "base_prefix": "/usr/local",
    "real_prefix": null,
    "exec_prefix": "/builds/<org>/<project>/.tox/py311",
    "base_exec_prefix": "/usr/local",
    "path": [
      "/usr/local/lib/python311.zip",
      "/usr/local/lib/python3.11",
      "/usr/local/lib/python3.11/lib-dynload",
      "/builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.11.2 (main, Mar 23 2023, 17:12:29) [GCC 10.2.1 20210110]",
  "makefile_filename": "/usr/local/lib/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' (frozen)>",
  "site": "<module 'site' (frozen)>",
  "datetime": "<module 'datetime' from '/usr/local/lib/python3.11/datetime.py'>",
  "math": "<module 'math' from '/usr/local/lib/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
  "json": "<module 'json' from '/usr/local/lib/python3.11/json/__init__.py'>"
} [virtualenv/run/session.py:51]
py311: 334 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv) [virtualenv/run/session.py:55]
py311: 338 D got embed update of distribution setuptools from /root/.local/share/virtualenv/wheel/3.11/embed/3/setuptools.json [virtualenv/app_data/via_disk_folder.py:129]
py311: 342 D got embed update of distribution wheel from /root/.local/share/virtualenv/wheel/3.11/embed/3/wheel.json [virtualenv/app_data/via_disk_folder.py:129]
py311: 342 D got embed update of distribution pip from /root/.local/share/virtualenv/wheel/3.11/embed/3/pip.json [virtualenv/app_data/via_disk_folder.py:129]
py311: 343 D install setuptools from wheel /usr/local/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-67.4.0-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py311: 343 D install wheel from wheel /usr/local/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py311: 343 D install pip from wheel /usr/local/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-23.0.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py311: 347 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.4.0-py3-none-any/setuptools to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:36]
py311: 348 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.0.1-py3-none-any/pip-23.0.1.virtualenv to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/pip-23.0.1.virtualenv [virtualenv/util/path/_sync.py:36]
py311: 348 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:36]
py311: 349 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.0.1-py3-none-any/pip-23.0.1.dist-info to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/pip-23.0.1.dist-info [virtualenv/util/path/_sync.py:36]
py311: 357 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.0.1-py3-none-any/pip to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:36]
py311: 369 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36]
py311: 371 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36]
py311: 381 D generated console scripts wheel3 wheel3.11 wheel wheel-3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py311: 464 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.4.0-py3-none-any/_distutils_hack to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36]
py311: 465 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.4.0-py3-none-any/pkg_resources to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36]
py311: 513 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.4.0-py3-none-any/setuptools-67.4.0.dist-info to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/setuptools-67.4.0.dist-info [virtualenv/util/path/_sync.py:36]
py311: 517 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.4.0-py3-none-any/setuptools-67.4.0.virtualenv to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/setuptools-67.4.0.virtualenv [virtualenv/util/path/_sync.py:36]
py311: 518 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.4.0-py3-none-any/distutils-precedence.pth to /builds/<org>/<project>/.tox/py311/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36]
py311: 519 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py311: 559 D generated console scripts pip pip-3.11 pip3 pip3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py311: 559 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61]
py311: 562 D write /builds/<org>/<project>/.tox/py311/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py311: 562 D 	home = /usr/local/bin [virtualenv/create/pyenv_cfg.py:34]
py311: 562 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py311: 562 D 	version_info = 3.11.2.final.0 [virtualenv/create/pyenv_cfg.py:34]
py311: 562 D 	virtualenv = 20.21.0 [virtualenv/create/pyenv_cfg.py:34]
py311: 562 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py311: 562 D 	base-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:34]
py311: 562 D 	base-exec-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:34]
py311: 562 D 	base-executable = /usr/local/bin/python [virtualenv/create/pyenv_cfg.py:34]
py311: 563 E internal error [tox/session/cmd/run/single.py:58]
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 45, in _evaluate
    tox_env.setup()
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/api.py", line 249, in setup
    self._setup_env()
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 107, in _setup_env
    self._install_deps()
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 111, in _install_deps
    self._install(requirements_file, PythonRun.__name__, "deps")
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/api.py", line 96, in _install
    self.installer.install(arguments, section, of_type)
    ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/api.py", line 73, in installer
    self._installer = Pip(self)
                      ^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/python/pip/pip_install.py", line 26, in __init__
    super().__init__(tox_env)
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/installer.py", line 15, in __init__
    self._register_config()
  File "/usr/local/lib/python3.11/site-packages/tox/tox_env/python/pip/pip_install.py", line 29, in _register_config
    self._env.conf.add_config(
  File "/usr/local/lib/python3.11/site-packages/tox/config/sets.py", line 64, in add_config
    raise RuntimeError("config set has been marked final and cannot be extended")
RuntimeError: config set has been marked final and cannot be extended
  py311: FAIL code 2 (0.32 seconds)
  evaluation failed :( (0.40 seconds)

Minimal example

If possible, provide a minimal reproducer for the issue:

[tox]
envlist = py311
skipsdist = True


[testenv]
# Expose ENV variables in calling shell to tox
passenv = PIP_TRUSTED_HOST,PIP_INDEX,PIP_INDEX_URL,PIP_EXTRA_INDEX_URL

install_command =
    pip install {opts} {packages}

deps =
    setuptools==67.3.2
    wheel==0.38.4
    pytest==7.2.1
    pytest-cov==4.0.0
    pytest-sugar==0.9.6
    coverage==7.1.0

commands =
    # Install ourselves
    pip install -e .

    # pytest-cov doesn't seem to play nice with -p
    coverage run -p -m pytest -s -p no:warnings --junitxml=report.xml tests

Activity

  1. gaborbernat commented on May 3, 2023

    @gaborbernat
    Member

    PR welcome to fix it.

  2. added
    bug:minordoes not affect many people or has no big impact
    help:wantedIssues that have been acknowledged, a solution determined and a PR might likely be accepted.
    on May 3, 2023
  3. m3talstorm commented on Jun 12, 2023

    @m3talstorm
    Author

    @gaborbernat Can you think of any work arounds for this? Or at least some pointers where to look?

  4. gaborbernat commented on Jun 20, 2023

    @gaborbernat
    Member

    Sadly not 😊 you'll need to debug around the code and understand what's happening.

  5. m3talstorm commented on Jul 1, 2023

    @m3talstorm
    Author

    Here's an updated reproducible flow (no need to run it as a Gitlab runner, tox.ini and requirements.txt are still the same)

    Base image:

    FROM python:3.11-bullseye
    
    WORKDIR /
    
    # Virtualenv stuff
    ENV VIRTUAL_ENV=/venv
    
    RUN curl -o virtualenv.pyz https://bootstrap.pypa.io/virtualenv.pyz
    RUN python3.11 /virtualenv.pyz $VIRTUAL_ENV --pip=embed --setuptools=embed --wheel=embed --no-periodic-update
    
    ENV PATH="$VIRTUAL_ENV/bin:$PATH"
    
    RUN pip --version
    RUN python --version
    RUN pip install --upgrade --cache-dir=.pip -r requirements.txt && rm -rf .pip
    

    docker build -t registry.local/base-image:latest -f Dockerfile1 .

    FROM registry.local/base-image:latest
    
    WORKDIR /
    
    RUN python --version
    RUN pip --version
    RUN tox -vvvvv
    

    docker build -t registry.local/tox-image:latest -f Dockerfile2 .

    You'll get:

    > [4/5] RUN tox -vvvvv:
    #4 0.750 ROOT: 282 D setup logging to NOTSET on pid 7 [tox/report.py:219]
    #4 0.843 ROOT: 375 W No tox.ini or setup.cfg or pyproject.toml found, assuming empty tox.ini at / [tox/config/source/discover.py:82]
    #4 0.877 py: 409 I find interpreter for spec PythonSpec(path=/venv/bin/python) [virtualenv/discovery/builtin.py:58]
    #4 0.878 py: 410 D get interpreter info via cmd: /usr/local/bin/python3.11 /venv/lib/python3.11/site-packages/virtualenv/discovery/py_info.py 4oPHbsRXO1BtF4m7HIfV4QW7dvgBWfpT N7OvDkqPBAhPN52bLaozm94aKx3EN5AP [virtualenv/discovery/cached_py_info.py:111]
    #4 0.970 py: 502 D wrote python info of %s at (PosixPath('/usr/local/bin/python3.11'), PosixPath('/root/.local/share/virtualenv/py_info/1/1a1af0ee75eeea9e2e1ee996c87e7a2b11a0bebd85af04bb136d915cefc0abce.json')) [virtualenv/app_data/via_disk_folder.py:151]
    #4 0.971 py: 502 I proposed PythonInfo(spec=CPython3.11.4.final.0-64, system=/usr/local/bin/python3.11, exe=/venv/bin/python, platform=linux, version='3.11.4 (main, Jun 13 2023, 15:08:32) [GCC 10.2.1 20210110]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
    #4 0.971 py: 503 D accepted PythonInfo(spec=CPython3.11.4.final.0-64, system=/usr/local/bin/python3.11, exe=/venv/bin/python, platform=linux, version='3.11.4 (main, Jun 13 2023, 15:08:32) [GCC 10.2.1 20210110]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:67]
    #4 1.088 py: 620 D filesystem is case-sensitive [virtualenv/info.py:26]
    #4 1.156 py: 687 I create virtual environment via CPython3Posix(dest=/.tox/py, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:50]
    #4 1.156 py: 688 D create folder /.tox/py/bin [virtualenv/util/path/_sync.py:12]
    #4 1.156 py: 688 D create folder /.tox/py/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:12]
    #4 1.157 py: 688 D write /.tox/py/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:32]
    #4 1.157 py: 689 D      home = /usr/local/bin [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D      implementation = CPython [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D      version_info = 3.11.4.final.0 [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D      virtualenv = 20.23.1 [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D      include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D      base-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D      base-exec-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D      base-executable = /usr/local/bin/python3.11 [virtualenv/create/pyenv_cfg.py:36]
    #4 1.157 py: 689 D symlink /usr/local/bin/python3.11 to /.tox/py/bin/python [virtualenv/util/path/_sync.py:32]
    #4 1.158 py: 690 D create virtualenv import hook file /.tox/py/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:91]
    #4 1.158 py: 690 D create /.tox/py/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:94]
    #4 1.158 py: 690 D ============================== target debug ============================== [virtualenv/run/session.py:52]
    #4 1.159 py: 690 D debug via /.tox/py/bin/python /venv/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:200]
    #4 1.199 py: 690 D {
    #4 1.199   "sys": {
    #4 1.199     "executable": "/.tox/py/bin/python",
    #4 1.199     "_base_executable": "/usr/local/bin/python3.11",
    #4 1.199     "prefix": "/.tox/py",
    #4 1.199     "base_prefix": "/usr/local",
    #4 1.199     "real_prefix": null,
    #4 1.199     "exec_prefix": "/.tox/py",
    #4 1.199     "base_exec_prefix": "/usr/local",
    #4 1.199     "path": [
    #4 1.199       "/usr/local/lib/python311.zip",
    #4 1.199       "/usr/local/lib/python3.11",
    #4 1.199       "/usr/local/lib/python3.11/lib-dynload",
    #4 1.199       "/.tox/py/lib/python3.11/site-packages"
    #4 1.199     ],
    #4 1.199     "meta_path": [
    #4 1.199       "<class '_virtualenv._Finder'>",
    #4 1.199       "<class '_frozen_importlib.BuiltinImporter'>",
    #4 1.199       "<class '_frozen_importlib.FrozenImporter'>",
    #4 1.199       "<class '_frozen_importlib_external.PathFinder'>"
    #4 1.199     ],
    #4 1.199     "fs_encoding": "utf-8",
    #4 1.199     "io_encoding": "utf-8"
    #4 1.199   },
    #4 1.199   "version": "3.11.4 (main, Jun 13 2023, 15:08:32) [GCC 10.2.1 20210110]",
    #4 1.199   "makefile_filename": "/usr/local/lib/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
    #4 1.199   "os": "<module 'os' (frozen)>",
    #4 1.199   "site": "<module 'site' (frozen)>",
    #4 1.199   "datetime": "<module 'datetime' from '/usr/local/lib/python3.11/datetime.py'>",
    #4 1.199   "math": "<module 'math' from '/usr/local/lib/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
    #4 1.199   "json": "<module 'json' from '/usr/local/lib/python3.11/json/__init__.py'>"
    #4 1.199 } [virtualenv/run/session.py:53]
    #4 1.200 py: 731 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv) [virtualenv/run/session.py:57]
    #4 1.205 py: 737 D install setuptools from wheel /venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-67.8.0-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:49]
    #4 1.206 py: 737 D install pip from wheel /venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-23.1.2-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:49]
    #4 1.206 py: 738 D install wheel from wheel /venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.40.0-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:49]
    #4 1.208 py: 740 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.1.2-py3-none-any/pip-23.1.2.dist-info to /.tox/py/lib/python3.11/site-packages/pip-23.1.2.dist-info [virtualenv/util/path/_sync.py:40]
    #4 1.209 py: 741 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.40.0-py3-none-any/wheel to /.tox/py/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:40]
    #4 1.212 py: 744 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.8.0-py3-none-any/setuptools to /.tox/py/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:40]
    #4 1.217 py: 748 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.1.2-py3-none-any/pip-23.1.2.virtualenv to /.tox/py/lib/python3.11/site-packages/pip-23.1.2.virtualenv [virtualenv/util/path/_sync.py:40]
    #4 1.218 py: 750 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.1.2-py3-none-any/pip to /.tox/py/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:40]
    #4 1.233 py: 764 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.40.0-py3-none-any/wheel-0.40.0.dist-info to /.tox/py/lib/python3.11/site-packages/wheel-0.40.0.dist-info [virtualenv/util/path/_sync.py:40]
    #4 1.237 py: 769 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.40.0-py3-none-any/wheel-0.40.0.virtualenv to /.tox/py/lib/python3.11/site-packages/wheel-0.40.0.virtualenv [virtualenv/util/path/_sync.py:40]
    #4 1.276 py: 807 D generated console scripts wheel3 wheel3.11 wheel-3.11 wheel [virtualenv/seed/embed/via_app_data/pip_install/base.py:43]
    #4 1.335 py: 867 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.8.0-py3-none-any/distutils-precedence.pth to /.tox/py/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:40]
    #4 1.335 py: 867 D copy /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.8.0-py3-none-any/setuptools-67.8.0.virtualenv to /.tox/py/lib/python3.11/site-packages/setuptools-67.8.0.virtualenv [virtualenv/util/path/_sync.py:40]
    #4 1.336 py: 868 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.8.0-py3-none-any/setuptools-67.8.0.dist-info to /.tox/py/lib/python3.11/site-packages/setuptools-67.8.0.dist-info [virtualenv/util/path/_sync.py:40]
    #4 1.339 py: 871 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.8.0-py3-none-any/_distutils_hack to /.tox/py/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:40]
    #4 1.340 py: 872 D copy directory /root/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-67.8.0-py3-none-any/pkg_resources to /.tox/py/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:40]
    #4 1.357 py: 889 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:43]
    #4 1.403 py: 934 D generated console scripts pip3.11 pip pip3 pip-3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:43]
    #4 1.403 py: 935 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:63]
    #4 1.411 py: 943 D write /.tox/py/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:32]
    #4 1.411 py: 943 D      home = /usr/local/bin [virtualenv/create/pyenv_cfg.py:36]
    #4 1.411 py: 943 D      implementation = CPython [virtualenv/create/pyenv_cfg.py:36]
    #4 1.411 py: 943 D      version_info = 3.11.4.final.0 [virtualenv/create/pyenv_cfg.py:36]
    #4 1.412 py: 944 D      virtualenv = 20.23.1 [virtualenv/create/pyenv_cfg.py:36]
    #4 1.412 py: 944 D      include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:36]
    #4 1.412 py: 944 D      base-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:36]
    #4 1.412 py: 944 D      base-exec-prefix = /usr/local [virtualenv/create/pyenv_cfg.py:36]
    #4 1.412 py: 944 D      base-executable = /usr/local/bin/python3.11 [virtualenv/create/pyenv_cfg.py:36]
    #4 1.415 py: 946 E internal error [tox/session/cmd/run/single.py:59]
    #4 1.415 Traceback (most recent call last):
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 46, in _evaluate
    #4 1.415     tox_env.setup()
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 247, in setup
    #4 1.415     self._setup_env()
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 108, in _setup_env
    #4 1.415     self._install_deps()
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 112, in _install_deps
    #4 1.415     self._install(requirements_file, PythonRun.__name__, "deps")
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 95, in _install
    #4 1.415     self.installer.install(arguments, section, of_type)
    #4 1.415     ^^^^^^^^^^^^^^
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/api.py", line 73, in installer
    #4 1.415     self._installer = Pip(self)
    #4 1.415                       ^^^^^^^^^
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/python/pip/pip_install.py", line 28, in __init__
    #4 1.415     super().__init__(tox_env)
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/installer.py", line 15, in __init__
    #4 1.415     self._register_config()
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/tox_env/python/pip/pip_install.py", line 31, in _register_config
    #4 1.415     self._env.conf.add_config(
    #4 1.415   File "/venv/lib/python3.11/site-packages/tox/config/sets.py", line 66, in add_config
    #4 1.415     raise RuntimeError(msg)
    #4 1.415 RuntimeError: config set has been marked final and cannot be extended
    #4 1.416   py: FAIL code 2 (0.55 seconds)
    #4 1.416   evaluation failed :( (0.67 seconds)
    ------
    process "/bin/sh -c tox -vvvvv" did not complete successfully: exit code: 2
    

    (Note I know this is a weird way of running tox (with a Docker RUN command at build time) but it's just an example of how to hit the error.)

  6. m3talstorm commented on Jul 1, 2023

    @m3talstorm
    Author

    Thanks to debugging with @anthonywritescode

    The problem is with ENV PYTHONOPTIMIZE 1

    If you simply run tox like so, you will get the same error:

    PYTHONOPTIMIZE=1 tox -vvv
    
  7. gaborbernat commented on Jul 1, 2023

    @gaborbernat
    Member

    Never heard about that flag. What does it do?

  8. m3talstorm commented on Jul 1, 2023

    @m3talstorm
    Author

    @gaborbernat PYTHONOPTIMIZE , it's the same as -O but just as a env var :)

  9. gaborbernat commented on Jul 1, 2023

    @gaborbernat
    Member

    I have no idea why that might break the world, I would say as of today it's unsupported, however, feel free to put in a PR to make it supported. I will not spend time on making this work. 👍😁

  10. gaborbernat commented on Feb 18, 2026

    @gaborbernat
    Member

    Cannot reproduce on latest tox. The RuntimeError: config set has been marked final and cannot be extended error no longer occurs with install_command set in the config. This was reported against tox 4.5.1 and has been fixed in subsequent releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:configurationbug:minordoes not affect many people or has no big impactbug:normalaffects many people or has quite an impacthelp:wantedIssues that have been acknowledged, a solution determined and a PR might likely be accepted.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions