FS#72018 - Error launching if python-setuptools is installed and python-mccabe is not installed

Attached to Project: Community Packages
Opened by gamezelda (gamezelda) - Saturday, 04 September 2021, 01:11 GMT
Last edited by Andreas Radke (AndyRTR) - Saturday, 04 September 2021, 09:05 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

On my system attempting to run any pylint command (e.g. "pylint --version") without python-mccabe installed gives a pretty lenghty stack trace (see below) with a final message asking for python-mccabe ("pkg_resources.DistributionNotFound: The 'mccabe' distribution was not found and is required by pylint"). Installing python-mccabe fixes the problem.

After some troubleshooting, I found out that this doesn't happen on a minimal install, but only if python-setuptools is installed. So the situation is:
* Only python-pylint: OK
* python-pylint + python-setuptools but no python-mccabe: KO
* python-pylint + python-setuptools + python-mccabe: OK

From a cursory look upstream lists mccabe as a non-optional dependency ( https://github.com/PyCQA/pylint/blob/v2.10.2/setup.cfg#L48 ) so we could make python-mccabe a non-optional dependency in the Arch package as well.

(As for why it only happens when python-setuptools is installed, I'm not entirely sure, but I see that in this case pkg_resources is loaded (see the stacktrace below), and strace reveals it reads /usr/lib/python3.9/site-packages/pylint-2.10.2-py3.9.egg-info/requires.txt which lists mccabe as a dependency.

Additional info:
* package version(s): python-pylint 2.10.2-2, python-setuptools 1:57.4.0-1, python-mccabe 0.6.1-9
* config and/or log files etc.: N/A
* link to upstream bug report, if any: N/A

Steps to reproduce:

$ docker run --rm -it --hostname archtest archlinux:base
[root@archtest /]# pacman -Syu
[...]
[root@archtest /]# pacman -S python-pylint
[...]
[root@archtest /]# pylint --version
pylint 2.10.2
astroid 2.7.3
Python 3.9.6 (default, Jun 30 2021, 10:22:16)
[GCC 11.1.0]
[root@archtest /]# pacman -S python-setuptools
[...]
[root@archtest /]# pylint --version
Traceback (most recent call last):
File "/usr/sbin/pylint", line 33, in <module>
sys.exit(load_entry_point('pylint==2.10.2', 'console_scripts', 'pylint')())
File "/usr/lib/python3.9/site-packages/pylint/__init__.py", line 21, in run_pylint
from pylint.lint import Run as PylintRun
File "/usr/lib/python3.9/site-packages/pylint/lint/__init__.py", line 76, in <module>
from pylint.lint.parallel import check_parallel
File "/usr/lib/python3.9/site-packages/pylint/lint/parallel.py", line 7, in <module>
from pylint import reporters
File "/usr/lib/python3.9/site-packages/pylint/reporters/__init__.py", line 26, in <module>
from pylint import utils
File "/usr/lib/python3.9/site-packages/pylint/utils/__init__.py", line 46, in <module>
from pylint.utils.ast_walker import ASTWalker
File "/usr/lib/python3.9/site-packages/pylint/utils/ast_walker.py", line 7, in <module>
from astroid import nodes
File "/usr/lib/python3.9/site-packages/astroid/__init__.py", line 53, in <module>
from astroid import node_classes # Deprecated, to remove later
File "/usr/lib/python3.9/site-packages/astroid/node_classes.py", line 5, in <module>
from astroid.nodes.node_classes import ( # pylint: disable=redefined-builtin (Ellipsis)
File "/usr/lib/python3.9/site-packages/astroid/nodes/__init__.py", line 26, in <module>
from astroid.nodes.node_classes import ( # pylint: disable=redefined-builtin (Ellipsis)
File "/usr/lib/python3.9/site-packages/astroid/nodes/node_classes.py", line 46, in <module>
from astroid.bases import Instance, _infer_stmts
File "/usr/lib/python3.9/site-packages/astroid/bases.py", line 548, in <module>
class Generator(BaseInstance):
File "/usr/lib/python3.9/site-packages/astroid/bases.py", line 554, in Generator
special_attributes = lazy_descriptor(objectmodel.GeneratorModel)
File "/usr/lib/python3.9/site-packages/astroid/util.py", line 29, in <lambda>
lambda: importlib.import_module("." + module_name, "astroid")
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/usr/lib/python3.9/site-packages/astroid/interpreter/objectmodel.py", line 43, in <module>
from astroid.manager import AstroidManager
File "/usr/lib/python3.9/site-packages/astroid/manager.py", line 36, in <module>
from astroid.interpreter._import import spec
File "/usr/lib/python3.9/site-packages/astroid/interpreter/_import/spec.py", line 27, in <module>
from . import util
File "/usr/lib/python3.9/site-packages/astroid/interpreter/_import/util.py", line 6, in <module>
import pkg_resources
File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3243, in <module>
def _initialize_master_working_set():
File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3226, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3255, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 568, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 886, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 772, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'mccabe' distribution was not found and is required by pylint
[root@archtest /]# pacman -S python-mccabe
[...]
[root@archtest /]# pylint --version
pylint 2.10.2
astroid 2.7.3
Python 3.9.6 (default, Jun 30 2021, 10:22:16)
[GCC 11.1.0]
[root@archtest /]#
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Saturday, 04 September 2021, 09:05 GMT
Reason for closing:  Duplicate
Additional comments about closing:  Missing package name in the title. Fixed by creating  FS#72019 

Loading...