Pytest fails on startup with the following traceback:
$ pytest
Traceback (most recent call last):
File "/home/dev/.local/share/virtualenvs/backend/bin/pytest", line 5, in <module>
from pytest import main
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/pytest.py", line 7, in <module>
from _pytest.assertion import register_assert_rewrite
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/_pytest/assertion/__init__.py", line 12, in <module>
from _pytest.assertion import rewrite
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/_pytest/assertion/rewrite.py", line 23, in <module>
from _pytest.assertion import util
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/_pytest/assertion/util.py", line 10, in <module>
import _pytest._code
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/_pytest/_code/__init__.py", line 6, in <module>
from .code import Code # noqa
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/_pytest/_code/code.py", line 14, in <module>
import pluggy
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/pluggy/__init__.py", line 16, in <module>
from .manager import PluginManager, PluginValidationError
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/pluggy/manager.py", line 6, in <module>
import importlib_metadata
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/importlib_metadata/__init__.py", line 478, in <module>
__version__ = version(__name__)
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/importlib_metadata/__init__.py", line 445, in version
return distribution(package).version
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/importlib_metadata/__init__.py", line 418, in distribution
return Distribution.from_name(package)
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/site-packages/importlib_metadata/__init__.py", line 179, in from_name
dists = resolver(name)
File "<frozen importlib._bootstrap_external>", line 1382, in find_distributions
File "/home/dev/.local/share/virtualenvs/backend/lib/python3.8/importlib/metadata.py", line 400, in find_distributions
found = cls._search_paths(context.pattern, context.path)
AttributeError: 'str' object has no attribute 'pattern'
Python version: 3.8.1
Pytest version: 4.5.0
OS: Archlinux 5.4.3
Other packages:
atomicwrites==1.3.0
attrs==19.1.0
backports.functools-lru-cache==1.5
certifi==2019.6.16
chardet==3.0.4
contextlib2==0.5.5
coverage==4.5.4
docopt==0.6.2
future==0.17.1
idna==2.8
importlib-metadata==0.19
jmespath==0.9.4
more-itertools==7.2.0
paho-mqtt==1.3.1
pbr==5.4.2
pluggy==0.12.0
py==1.8.0
pyjwt==1.7.1
pykwalify==1.7.0
pytest-cov==2.7.1
pytest==4.5.0
python-box==3.4.2
python-dateutil==2.8.0
pyyaml==5.1.2
requests==2.22.0
six==1.12.0
stevedore==1.30.1
tavern==0.27.0
urllib3==1.25.3
wcwidth==0.1.7
zipp==0.5.2
If you run /home/dev/.local/share/virtualenvs/backend/bin/python -c 'import importlib_metadata', does the same happen as well?
Issues which look somewhat related:
So you might want to try upgrading your importlib-metadata and/or pluggy.
@The-Compiler Thanks, that clarifies the issue. But then I think Pytest should also update its requirements. It should not depend on a broken package.
@rubik it doesn't, in python3.8 we don't use importlib_metadata we use importlib.metadata
you're on a very old version of pytest which is probably why it's being pulled in erroneously
@asottile My bad, you are right. There was another package pinning it down. Thanks, for the help.
Most helpful comment
Issues which look somewhat related:
So you might want to try upgrading your
importlib-metadataand/orpluggy.