wake-up-neo.net

Pylint: "Problem beim Importieren des Moduls ....: Name" Typ "kann nicht importiert werden"

Bei jedem Durchlauf von Pylint (unabhängig davon, welches Programm geprüft wird) wird folgende Fehlermeldung angezeigt:

(env) $ pylint hello.py 
Problem importing module logging.py: cannot import name 'Type'
Problem importing module spelling.py: cannot import name 'Type'
Problem importing module python3.py: cannot import name 'Type'
Problem importing module typecheck.py: cannot import name 'Type'
Problem importing module variables.py: cannot import name 'Type'
Problem importing module refactoring.py: cannot import name 'Type'
Problem importing module format.py: cannot import name 'Type'
Problem importing module imports.py: cannot import name 'Type'
Problem importing module utils.py: cannot import name 'Type'
Problem importing module newstyle.py: cannot import name 'Type'
Problem importing module exceptions.py: cannot import name 'Type'
Problem importing module classes.py: cannot import name 'Type'
Problem importing module stdlib.py: cannot import name 'Type'
Problem importing module async.py: cannot import name 'Type'
Problem importing module design_analysis.py: cannot import name 'Type'
Problem importing module base.py: cannot import name 'Type'
Problem importing module strings.py: cannot import name 'Type'
Traceback (most recent call last):
  File "/Users/brunorijsman/python-logging-performance/env/bin/pylint", line 11, in <module>
    sys.exit(run_pylint())
  File "/Users/brunorijsman/python-logging-performance/env/lib/python3.5/site-packages/pylint/__init__.py", line 20, in run_pylint
    Run(sys.argv[1:])
  File "/Users/brunorijsman/python-logging-performance/env/lib/python3.5/site-packages/pylint/lint.py", line 1557, in __init__
    linter.enable("c-extension-no-member")
  File "/Users/brunorijsman/python-logging-performance/env/lib/python3.5/site-packages/pylint/utils.py", line 323, in enable
    msgid, enable=True, scope=scope, line=line, ignore_unknown=ignore_unknown
  File "/Users/brunorijsman/python-logging-performance/env/lib/python3.5/site-packages/pylint/utils.py", line 366, in _set_msg_status
    msg = self.msgs_store.get_message_definition(msgid)
  File "/Users/brunorijsman/python-logging-performance/env/lib/python3.5/site-packages/pylint/utils.py", line 989, in get_message_definition
    msgid_or_symbol=msgid_or_symbol
pylint.exceptions.UnknownMessageError: No such message id c-extension-no-member

In diesem speziellen Fall habe ich folgendes triviales Programm hello.py geprüft:

print("Hello")

Das Problem tritt jedoch auch auf, wenn ich kein Programm überprüfe, z. pylint --version

Pylint läuft in einer virtuellen Umgebung, die ich wie folgt erstellt habe:

$ python3 -m virtualenv env
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.5'
New python executable in /Users/brunorijsman/python-logging-performance/env/bin/python3
Also creating executable in /Users/brunorijsman/python-logging-performance/env/bin/python
Installing setuptools, pip, wheel...done.
$ source env/bin/activate
(env) $

(Hinweis: Ich weiß, dass das Modul venv heutzutage über virtualenv empfohlen wird, aber ich habe andere Probleme mit venv unter macOS, wie in 'pip install' beschrieben, schlägt für jedes Paket fehl ("Konnte keine Version finden, die die Anforderung erfüllt") )

Ich habe pylint wie folgt in der virtuellen Umgebung installiert:

(env) $ pip install pylint
Collecting pylint
  Using cached https://files.pythonhosted.org/packages/a5/06/ecef826f319055e6b231716730d7f9047dd7524ffda224b521d989f085b6/pylint-2.2.2-py3-none-any.whl
Collecting isort>=4.2.5 (from pylint)
  Using cached https://files.pythonhosted.org/packages/1f/2c/22eee714d7199ae0464beda6ad5fedec8fee6a2f7ffd1e8f1840928fe318/isort-4.3.4-py3-none-any.whl
Collecting astroid>=2.0.0 (from pylint)
  Using cached https://files.pythonhosted.org/packages/fc/53/8809bc008bad0300897281a7b320b286dc0e84e836396c0cff6279841e8a/astroid-2.1.0-py3-none-any.whl
Collecting mccabe (from pylint)
  Using cached https://files.pythonhosted.org/packages/87/89/479dc97e18549e21354893e4ee4ef36db1d237534982482c3681ee6e7b57/mccabe-0.6.1-py2.py3-none-any.whl
Collecting typed-ast; python_version < "3.7" and implementation_name == "cpython" (from astroid>=2.0.0->pylint)
Collecting wrapt (from astroid>=2.0.0->pylint)
Collecting six (from astroid>=2.0.0->pylint)
  Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting lazy-object-proxy (from astroid>=2.0.0->pylint)
Installing collected packages: isort, typed-ast, wrapt, six, lazy-object-proxy, astroid, mccabe, pylint
Successfully installed astroid-2.1.0 isort-4.3.4 lazy-object-proxy-1.3.1 mccabe-0.6.1 pylint-2.2.2 six-1.11.0 typed-ast-1.1.0 wrapt-1.10.11

Versions Information:

Betriebssystem ist macOS High Sierra 10.13.6

(env) $ python --version
Python 3.5.1
5
Bruno Rijsman

Es scheint, dass Ihre Python-Version mit bestimmten Pylint und Astroiden kompatibel ist. Python 3.5 enthält eine eigene Version der Typisierung, die vor der Einführung von Typing.Type hinzugefügt wurde. Das könnte also das Problem lösen:

pip install astroid==1.5.3 pylint==1.8.2

Dieses Problem trat bei Python 3.5 auf 

https://github.com/PyCQA/pylint/issues/1216

https://github.com/python/mypy/issues/1838

0
i_th