mypy、mypylang和pylsmypypypython包之间的差异

2024-05-19 02:13:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在探索Python的静态类型检查器,在设置VisualStudio代码时遇到了不同的包。我已经安装了python-language-server用于linting和格式化。我遇到了mypy.exemypyls.exe可执行文件

我可以

pip install mypy

pip install mypy-lang

pip install pyls-mypy

以上三个方面都很有效。但是,

  1. 我想知道mypymypy-langpyls-mypy包之间的区别
  2. 以下哪项用于启用类型检查器(或所有3项都需要)
  3. 这些包是否以任何方式与python-language-server相关?如果是,如何进行

Tags: installpip代码可执行文件类型langserver静态
1条回答
网友
1楼 · 发布于 2024-05-19 02:13:01

I would like to know the difference between mypy, mypy-lang and pyls-mypy packages?

{}包包含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

Which of these is used for enabling the Type-Checker (or all the 3 are needed)?

类型检查只需要mypy包

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

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

另一个例子是,如果您想从支持LSP的编辑器中使用mypy,则需要安装类似于pyls mypy的东西

Are these packages in any way related to the python-language-server ? If yes, how ?

pyls mypy显然是Palantir的python语言服务器项目之上的插件。请参阅project readme及其requirements.txt文件

相关问题 更多 >

    热门问题