mypy与mypy-lang与pyls-mypy python包之间的差异

问题描述 投票:-2回答:1

我正在研究Python的静态类型检查器,并在设置Visual Studio代码时遇到了不同的软件包。我已经安装了python-language-server以便整理和格式化。我遇到了mypy.exemypyls.exe可执行文件。

我可以,

pip install mypy

pip install mypy-lang

pip install pyls-mypy

以上所有三部作品。但是,

  1. 我想知道mypymypy-langpyls-mypy软件包之间的区别?
  2. 其中哪一个用于启用类型检查器(或全部三个)?
  3. 这些软件包与python-language-server有什么关系吗?如果是,怎么办?
python visual-studio-code pylint mypy
1个回答
1
投票

我想知道mypy,mypy-lang和pyls-mypy包之间的区别?

mypy程序包包含mypy类型检查器,该检查器执行所有实际的代码分析,类型推断和类型检查。

mypy-lang软件包已弃用。如果您安装它/尝试使用它,我相信它所要做的就是告诉您应该安装mypy软件包(尽管我不确定此注释的实际可见性)。

[基本上,事实证明,当首次创建mypy时,已经有人在pypi上获取了一个无关项目的“ mypy”名称,因此mypy开发人员改为使用“ mypy-lang”。

但是经过几年/几次尝试联系“ mypy”软件包所有者的失败之后,很明显该软件包已被放弃,因此所有权被转移给了mypy开发者。

pyls-mypy包是一个独立的项目,基本上实现了可理解类型提示的Python语言服务器。

“ [language server protocol”是一种稳定增长的协议,它试图使为IDE编程语言添加更好的工具变得更加容易。

的想法是,如果您拥有一种编程语言或一些linter,则不想为N个不同的编辑器编写N个不同的插件。相反,您只需实施一次此协议,然后任何支持LSP的IDE和编辑器都会自动了解您的工具。

安装pyls-mypy的“方法”有效的原因可能是因为它声明了mypy as a dependency

其中哪一个用于启用类型检查器(或全部三个)?

仅需要mypy软件包才能进行类型检查。

但是,mypy本身只能从命令行调用。如果要将其与其他编辑器或IDE集成,则需要安装一些额外的工具。

例如,如果您想直接在PyCharm中使用mypy,则需要install a mypy/Pycharm plugin

作为另一个示例,如果要从支持LSP的编辑器中使用mypy,则需要安装诸如pyls-mypy之类的东西。

这些软件包是否与python-language-server有关?如果是,怎么办?

pyls-mypy显然是在Palantir的python-language-server项目之上的for / builds插件。请参阅project readme及其requirements.txt文件。

© www.soinside.com 2019 - 2024. All rights reserved.