Skip to content

tox breaks with latest pytest (py.io.TerminalWriter()) #2540

Closed as not planned
@hloeung

Description

@hloeung

I first reported this against pytest in pytest-dev/pytest#10505

In pytest-dev/pytest@19dda7c, pytest now includes py.py. This causes tox to break as follows:

$ tox -e unittest
Traceback (most recent call last):
  File "/usr/bin/tox", line 33, in <module>
    sys.exit(load_entry_point('tox==3.21.4', 'console_scripts', 'tox')())
  File "/usr/bin/tox", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3/dist-packages/tox/__init__.py", line 32, in <module>
    from .session import cmdline  # isort:skip
  File "/usr/lib/python3/dist-packages/tox/session/__init__.py", line 20, in <module>
    from tox import reporter
  File "/usr/lib/python3/dist-packages/tox/reporter.py", line 127, in <module>
    _INSTANCE = Reporter()
  File "/usr/lib/python3/dist-packages/tox/reporter.py", line 32, in __init__
    self._reset(**kwargs)
  File "/usr/lib/python3/dist-packages/tox/reporter.py", line 38, in _reset
    self.tw = py.io.TerminalWriter()
AttributeError: module 'py' has no attribute 'io'

Removing ~/.local/lib/python3.10/site-packages/py.py allows it to run successfully.

My steps to reproduce this is to have requirements.txt as follows:

pycountry-convert

Then:

pip install -r requirements.txt

Now check out ~/.local/lib/python3.10/site-packages/ which now has py.py. Then try run tox -e ....

This is with an Ubuntu Jammy/22.04 VM.

This bug reported against pytest has been closed referencing pytest-dev/pytest#10420 (comment) where it mentions "depending on py without declaring it as a dependency".

Is this something that should be fixed in tox itself?

Thanks in advance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug:normalaffects many people or has quite an impact

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions