运行pylint出现ModuleNotFoundError: No module named 'wrapt.wrappers'错误

4

我正在尝试使用Visual Studio Code和pylint。当我加载任何.py文件时,输出控制台会显示以下错误:

Linting with pylint failed.
You could either install the 'pylint' linter or turn it off in setings.json via "python.linting.pylintEnabled = false".
Error: Command failed: C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\python.exe -m pylint --msg-template='{line},{column},{category},{msg_id}:{msg}' --reports=n --output-format=text c:\Users\(...)\Desktop\Untitled-1.py
Traceback (most recent call last):
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pylint\__main__.py", line 7, in <module>
    pylint.run_pylint()
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pylint\__init__.py", line 12, in run_pylint
    from pylint.lint import Run
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pylint\lint.py", line 43, in <module>
    import astroid
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroid\__init__.py", line 57, in <module>
    from astroid.nodes import *
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroid\nodes.py", line 30, in <module>
    from astroid.node_classes import (
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroid\node_classes.py", line 26, in <module>
    from astroid import decorators
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroid\decorators.py", line 12, in <module>
    import wrapt
  File "C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\wrapt\__init__.py", line 4, in <module>
    from .wrappers import (ObjectProxy, CallableObjectProxy, FunctionWrapper,
ModuleNotFoundError: No module named 'wrapt.wrappers'

这不仅适用于VS Code,当我从命令行运行此命令时,结果也相同:

C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\python.exe -m pylint --msg-template='{line},{column},{category},{msg_id}:{msg}' --reports=n --output-format=text c:\Users\(...)\Desktop\Untitled-1.py

已安装pylint所依赖的软件包:

PS C:\Users\(...)> & C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\python.exe -m pip install pylint
Requirement already satisfied: pylint in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages
Requirement already satisfied: six in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages (from pylint)
Requirement already satisfied: colorama; sys_platform == "win32" in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages (from pylint)
Requirement already satisfied: isort>=4.2.5 in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages (from pylint)
Requirement already satisfied: mccabe in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages (from pylint)
Requirement already satisfied: astroid>=1.5.1 in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages (from pylint)
Requirement already satisfied: lazy-object-proxy in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages (from astroid>=1.5.1->pylint)
Requirement already satisfied: wrapt in c:\users\(...)\appdata\local\programs\python\python36-32\lib\site-packages (from astroid>=1.5.1->pylint)

在Win 10 64位系统上,Python 3.6.3的32位版本已经安装。Python的路径已经设置在系统环境变量中。

3个回答

1

我遇到了同样的问题,环境类似(win 10 64位,VSCode,Python 3.6.3)。 我从wrapt github仓库下载了所有文件: https://github.com/GrahamDumpleton/wrapt/tree/master/src/wrapt 然后我把它放在我的wrapt文件夹中。

    C:\Users\(...)\AppData\Local\Programs\Python\Python36-32\lib\site-packages\wrapt\

现在我的代码检查器正在工作。

linter是否被视为通过pip安装? - Cutter
是的。我实际上在另一个环境(win7,32位)中使用vscode,包括python linter,并且与win10 64位中的linter不同,它在pip安装后就可以正常运行。当我比较那里的linter和我从上面的github获取的linter时,据我所知,它们的行为是相同的。 - Leonard AB
请告诉我上面的 Github 存储库是否也适用于您。 - Leonard AB

0

你可能已经使用sudo安装了pylint。尝试以用户范围安装,例如pip install pylint --user


0

模块wrapt安装不正确,因此我卸载了它。重新安装失败,因为pip无法处理MSVC警告中的特殊字符。(不知道第一次安装如何报告成功)。

pip在控制台输出中处理特殊字符存在错误。作为解决方法,我替换了\lib\site-packages\pip\compat\__init__.py中第73行:

从:

return s.decode(sys.__stdout__.encoding)

到:

return s.decode(sys.__stdout__.encoding, "replace")

然后再次运行python -m pip install pylint。这次成功了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接