Skip to content

skip_missing_interpreters is broken (again) #3153

@gpotter2

Description

@gpotter2

Issue

skip_missing_interpreters is broken when using package=wheel. Basically a variation of #2811. There are probably more..
(tried to provide a fix in #3152 but I gave up on passing tests I didn't understood)

Minimal example

tox.ini:

[tox]
skip_missing_interpreters = true
envlist = py{37,38,39,310,311,312}

[testenv]
package = wheel
allowlist_externals = echo
commands =
  echo "hey"

Output of running tox

Output of tox
Traceback (most recent call last):
  File "/home/user/.pyenv/versions/3.11.2/bin/tox", line 8, in <module>
    sys.exit(run())
             ^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/run.py", line 19, in run
    result = main(sys.argv[1:] if args is None else args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/run.py", line 45, in main
    return handler(state)
           ^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/session/cmd/legacy.py", line 115, in legacy
    return run_sequential(state)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/session/cmd/run/sequential.py", line 24, in run_sequential
    return execute(state, max_workers=1, has_spinner=False, live=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/session/cmd/run/common.py", line 239, in execute
    cast(RunToxEnv, state.envs[name]).mark_active()
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/tox_env/runner.py", line 211, in mark_active
    for pkg_env in self.package_envs:
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/tox_env/runner.py", line 208, in package_envs
    yield from self.package_env.child_pkg_envs(self.conf)
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/tox_env/python/package.py", line 122, in child_pkg_envs
    env = self._wheel_build_envs.get(run_conf["wheel_build_env"])
                                     ~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/config/sets.py", line 118, in __getitem__
    return self.load(item)
           ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/config/sets.py", line 129, in load
    return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/config/of_type.py", line 105, in __call__
    value = self.default(conf, args.env_name) if callable(self.default) else self.default
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/tox_env/python/package.py", line 92, in default_wheel_tag
    run_py = cast(Python, run_env).base_python
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.11.2/lib/python3.11/site-packages/tox/tox_env/python/api.py", line 258, in base_python
    raise Skip(msg)
tox.tox_env.errors.Skip: could not find python interpreter with spec(s): py37

Metadata

Metadata

Assignees

No one assigned

    Labels

    help: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