好了,似乎,是我的 Jedi 的问题。
def with_hints(a: int, b: int) -> None:
return None
def without_hints(a, b):
return None
with
虽然不知道为什么,我去提个 issue 看看(
好了,似乎,是我的 Jedi 的问题。
def with_hints(a: int, b: int) -> None:
return None
def without_hints(a, b):
return None
with
虽然不知道为什么,我去提个 issue 看看(
似乎,是我的 Jedi 的问题(好奇怪啊
M-x shell-comman RET pip show jedi
:
Name: jedi
Version: 0.12.0
Summary: An autocompletion tool for Python that can be used for text editors.
Home-page: https://github.com/davidhalter/jedi
Author: David Halter
Author-email: [email protected]
License: MIT
Location: ~/.pyenv/versions/3.6.5/lib/python3.6/site-packages
Requires: parso
Required-by: python-language-server
楼主等问题解决了请来分享是哪出了问题还有怎么解决的:grinning:。
啊!总算解决了,虽然解决的方法有点奇怪(
问题是出在 jedi,看我提出的这个 issue : Strangely, cannot recognize function with type hinting. · Issue #1198 · davidhalter/jedi · GitHub . jedi 不支持 3.7,于是…出问题了。
解决方法是:
#!/usr/bash
pyenv exec python -m pyls
(lsp-define-stdio-client lsp-python "python3"
#'projectile-project-root
'("pyenv_pyls"))
之后就所有都一样了。
一路上有点误区,本来我用了 (setq shell-command-switch "-ic")
来读取 shell 里的 aliases,这样就不用创建 pyenv_pyls 这个文件了,遗憾的是,虽然 M-x shell-comman RET 的时候可以使用 pyenv_pyls
,但是 pyenv_pyls 却不是一个可执行的东西,会导致 lsp-mode 启动失败。
同样的,还有直接在定义的时候,这里用了 '("pyenv exec python -m pyls")
也是同样是失败的。
这样做的缺点在于,如果 local project 的 pyenv 是 3.7 或者 2.7 的就不行了。
解决啦!问题是 jedi