it-swarm.com.ru

Pylint: "Проблема с импортированием модуля ....: невозможно импортировать имя" Тип ""

Каждый запуск pylint (независимо от того, какая программа проверена) выдает следующее сообщение об ошибке:

(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

В этом конкретном случае я проверял следующую тривиальную программу hello.py:

print("Hello")

Но проблема также возникает, когда я не проверяю программу, например, pylint --version

Pylint работает в виртуальной среде, которую я создал следующим образом:

$ 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) $

(Примечание: я понимаю, что в наши дни модуль venv рекомендуется вместо virtualenv, но у меня разные проблемы с venv на macOS, как описано в «pip install» завершается сбоем для каждого пакета («Не удалось найти версию, удовлетворяющую требованию») )

Я установил Pylint в виртуальной среде следующим образом:

(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

Информация о версии:

Операционная система MacOS High Sierra 10.13.6

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

Похоже, что ваша версия на Python совместима с конкретными пилинтами и астроидами. Python 3.5 поставляется с собственной версией набора текста, которая была добавлена ​​до введения типирования. Тип. Итак, это может решить проблему:

pip install astroid==1.5.3 pylint==1.8.2

Эта проблема произошла с Python 3.5 

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

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

0
i_th