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
Opened by gamezelda (gamezelda) - Saturday, 04 September 2021, 01:11 GMT
Last edited by Andreas Radke (AndyRTR) - Saturday, 04 September 2021, 09:05 GMT
|
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
Saturday, 04 September 2021, 09:05 GMT
Reason for closing: Duplicate
Additional comments about closing: Missing package name in the title. Fixed by creating