我正在探索Python的静态类型检查器,并在设置Visual代码时遇到了不同的包。我已经安装了python-language-server,用于衬里和格式化。我偶然发现了mypy.exe和mypyls.exe的可执行文件。
我可以做,
pip install mypy
pip install mypy-lang
pip install pyls-mypy
以上三件作品。但,
mypy、mypy-lang和pyls-mypy包之间的区别吗?python-language-server相关?如果是,怎么做?发布于 2020-02-01 17:46:38
我想知道类型,记忆-朗和小矮人包之间的区别?
mypy包包含mypy类型检查器,它执行所有实际的代码分析、类型推断和类型检查。
mypy-lang包是一个不推荐的包。如果您安装它/尝试使用它,我相信它所做的就是告诉您应该安装mypy包(虽然我不知道这条注释的实际可见程度)。
基本上,事实证明,当mypy第一次创建时,已经有人为一个无关的项目在pypi上抢占了" mypy“的名字,所以mypy以”mypy“代替。
但是,在几年后,很少有人试图联系" mypy“包的所有者,很明显,这个包被放弃了,所以所有权被转移到了mypy devs。
pyls-mypy包是一个独立的项目,它基本上实现了一个理解类型提示的Python服务器。
"语言服务器协议“是一种正在逐渐流行的协议,它试图使在IDE中添加更好的编程语言工具变得更容易。
这样做的想法是,如果您拥有一种编程语言或某些linter,您不希望为N个不同的编辑器编写N个不同的插件。相反,您只需实现该协议一次,任何支持LSP的IDE和编辑器都会自动理解您的工具。
安装pyls-mypy的原因可能是因为它声明了形似依附。
其中哪一个是用来启用类型检查器(还是所有的3都是必需的)?
类型检查只需要mypy包。
但是,mypy本身只能从命令行调用。如果您想将它与其他编辑器或IDE集成,则需要安装一些额外的工具。
例如,如果要在PyCharm中直接使用mypy,则需要使用安装mypy/Pycharm插件。
另一个例子是,如果您想使用某个支持LSP的编辑器的mypy,您需要安装类似pyls-mypy的东西。
这些包与python语言服务器有任何关系吗?如果是,怎么做?
pyls显然是Palantir的python语言服务器项目之上的一个插件。请参阅项目自述及其requirements.txt文件。
https://stackoverflow.com/questions/59925045
复制相似问题