tox
tox copied to clipboard
RuntimeError: config set has been marked final and cannot be extended
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: https://github.com/tox-dev/tox/issues/3006#issuecomment-1615980590
- 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
PR welcome to fix it.
@gaborbernat Can you think of any work arounds for this? Or at least some pointers where to look?
Sadly not 😊 you'll need to debug around the code and understand what's happening.
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.)
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
Never heard about that flag. What does it do?
@gaborbernat PYTHONOPTIMIZE , it's the same as -O but just as a env var :)
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. 👍😁