Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
m3talstorm opened this issue May 3, 2023 · 8 comments
Open
Labels
bug:minor does not affect many people or has no big impact help:wanted Issues that have been acknowledged, a solution determined and a PR might likely be accepted.

Comments

@m3talstorm
Copy link

m3talstorm commented May 3, 2023

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
@gaborbernat
Copy link
Member

PR welcome to fix it.

@gaborbernat gaborbernat added bug:minor does not affect many people or has no big impact help:wanted Issues that have been acknowledged, a solution determined and a PR might likely be accepted. labels May 3, 2023
@m3talstorm
Copy link
Author

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

@gaborbernat
Copy link
Member

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

@m3talstorm
Copy link
Author

m3talstorm commented Jul 1, 2023

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.)

@m3talstorm
Copy link
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

@gaborbernat
Copy link
Member

Never heard about that flag. What does it do?

@m3talstorm
Copy link
Author

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

@gaborbernat
Copy link
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. 👍😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug:minor does not affect many people or has no big impact help:wanted Issues that have been acknowledged, a solution determined and a PR might likely be accepted.
Projects
None yet
Development

No branches or pull requests

2 participants