lsp-python-ms默认用的好像是系统的python2,好像没看到参数可以改诶
同样遇到这个问题,lsp-ui 一直在报 require 3.x 的错误。
lsp-python-ms.el 里面是 executable-find python 的,那里面改成 python3 就是这样的。
仔细检查Emacs里python的默认版本:(executable-find "python")
.
这个还是你环境的问题。
晚上测试了下,用我上面那段代码,在Linux/Mac下可以自动下载mspyls,在Python2 和 Python3下都能正常工作。
mspyls 有个比较怪异的问题,不知道你这遇到没,第一次打开文件,补全什么的都很正常,但是如果操作一下, lsp-log 里面出现 Reloading modules… 之类的提示的话,有些 module 就找不到了,会报 unresolved import 的 warning, 同时相关补全也没有了。 我找了一个非常简单的测试代码。其中 sys 和 time 会有 unresolved import 的报错。敲 sys. 也得不到任何补全。
import sys
import time
import os
if len(sys.argv) <= 1:
print(sys.argv[0] + ": " + " test")
print(os.environ)
print(time.time())
我在macOS和Linux上没有遇到该问题。
遇到这个问题的不是你一个人。json,os等等一堆库都正常,偏偏math库提示unresolved import. 目前lsp在python上还是不如anaconda
个人感觉 lsp-python-ms 这个lsp client 在windows平台上的兼容性 非常差,所以导致了mspyls 的低效,甚至是bug
是不是某些module的路径找不到?试试lsp-python-ms-extra-paths
?
大佬能详细说说么?最近要写java, 折腾idea, 这个按键真是接受不了, 可定制性还极差, 还各种冲突,难搞啊
最新版应该可以通过 nuget list
命令从 https://pvsc.azureedge.net
获取。究竟 vscode 请求的完整地址是什么,要读一下源代码,或者加一些调试语句打印出来:
谢谢!在VSCode的message输出中找到地址了,但是最新的版本号无法自动获取(至少目前不知道方法)。现在是获取VSCode的扩展中的版本号写死到函数里的,也够用了。
我说的就是自动获取最新版本呀。
VSCode 先是请求 nupkg 源,得到下载列表,信息窗口应该能看到这句输出:
"Listing Nuget Packages"
取到列表之后,然后从中选取需要的下载链接。
我倒是想调试看看(列表是向哪个 URL 请求的,然后是否可以用 curl 模拟),但是不知道怎么配 VSCode,让它触发下载 mspyls。。。我现在一启动 VSCode,它自动选用了 pyls。
不是所有机器都安装了nuget
啊,非Windows下更麻烦,这样有点得不偿失了。
最简单的办法,删除pyls试试。VSC默认用的是Jedi,必须disable。
可以通过 curl 模拟请求,得到列表,不需要 nuget。返回结果是 json 格式。
这个可以尝试,需要知道URL和API就行了。
我试了下简单的url叠加,没模拟出来。现在考虑,有一个方案是抓包。
wireshark 抓包也可以。