VSCode鼠标悬停在Python关键字上不工作
当我开始教一位朋友如何用Python编写代码时,我在他的VSCode中发现了一些与我不同的东西——他可以将鼠标悬停在Python关键字上,例如VSCode鼠标悬停在Python关键字上不工作,python,visual-studio-code,vscode-settings,Python,Visual Studio Code,Vscode Settings,当我开始教一位朋友如何用Python编写代码时,我在他的VSCode中发现了一些与我不同的东西——他可以将鼠标悬停在Python关键字上,例如import或def,它将显示该关键字的Python手册定义。我自己的VSCode不这样做 我已经尝试了我能想到的一切,以找到为什么这对我不起作用,我完全不知所措。我将我的安装过程与我朋友的进行了比较,遵循了我为他提供的设置环境的完全相同的步骤,但没有得到相同的结果。我试着从我的笔记本电脑上完全删除Python、VSCode和所有剩余的VSCode文件,然
import
或def
,它将显示该关键字的Python手册定义。我自己的VSCode不这样做
我已经尝试了我能想到的一切,以找到为什么这对我不起作用,我完全不知所措。我将我的安装过程与我朋友的进行了比较,遵循了我为他提供的设置环境的完全相同的步骤,但没有得到相同的结果。我试着从我的笔记本电脑上完全删除Python、VSCode和所有剩余的VSCode文件,然后按照他所做的顺序重新安装,但仍然没有成功
我在工作时在另一台笔记本电脑上遵循同样的步骤,我可以让鼠标套在那里工作。我能想到的唯一可行的区别是,我的工作机器没有使用与我的家用电脑和笔记本电脑相同的Windows帐户,但我没有启用设置同步功能,所以我不明白这到底有什么关系
为了让这个功能在VSCode中为我自己正常工作,我忽略了什么?我并不特别需要它,但我希望在我教我的朋友时,能和他在同一个环境中
我们都在VSCode 1.55.2和Python 3.9.4上,使用从VSCode的Powershell终端创建的虚拟环境,然后重新启动VSCode以使其检测虚拟环境并将其用作终端的默认环境,最后安装pip并启用Pylint作为linter
编辑以添加后续步骤-在完全删除VisualStudio2019、代码和Python的所有痕迹后,我在家用笔记本电脑上再次完成了所有这些。注意:这是在Windows 10上,应用了所有更新
- 安装VSCode
- 安装VSCode Python扩展,MS版本
- 安装Python 3.9.4
- 在VSCode中打开一个新文件夹,然后打开终端
- python-mvenv
- 在浏览器窗格中创建
something.py
- VSCode应检测venv并提供加载。答应
- VScode还可能指示未安装
,允许其安装,或从venv手动安装pylint
pip pylint
- 在
键入something.py中
import random
- 将鼠标悬停在导入上,这就是差异。在我家的两台机器上,都没有鼠标盖。在我朋友的两台机器上,以及我的工作机器上,显示了以下内容:
在riov8对原始帖子评论的帮助下,我能够比较每种环境下有效的实验组
- 在VSCode中,加载Python文件后,切换到输出面板(与终端位于同一区域),并将下拉列表更改为Python
- 滚动到此面板顶部,检查您所属的实验组
- 大多数实验组不适用于这个问题
- 专门查找
,pythonJediLSP
或者如果 你两个都没有pythonJediLSPcf
Error 2021-04-16 15:33:40: stderr jediProxy Error (stderr) %UserProfile%\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\completion.py:598: DeprecationWarning: Providing the line is now done in the functions themselves like `Script(...).complete(line, column)`
sys_path=sys.path,
%UserProfile%\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\completion.py:598: DeprecationWarning: Providing the column is now done in the functions themselves like `Script(...).complete(line, column)`
sys_path=sys.path,
Error 2021-04-16 15:33:40: stderr jediProxy Error (stderr) %UserProfile%\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\completion.py:598: DeprecationWarning: Deprecated since version 0.17.0. Use the project API instead, which means Script(project=Project(dir, sys_path=sys_path)) instead.
sys_path=sys.path,
Error 2021-04-16 15:33:40: stderr jediProxy Error (stderr) %UserProfile%\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\completion.py:626: DeprecationWarning: Deprecated since version 0.16.0. Use Script(...).infer instead.
script.goto_definitions(), request["id"]
以下场景为我解决了问题:
用户属于实验组pythonJediLSPcf
:
- 文件>首选项>设置
- 在搜索设置中,开始键入
python.experience
- 在Python>Experiments:Opt Out From下,单击设置中的编辑。json
- 在“python.experiments.optOutFrom”一节中,添加
(引用)“pythonJediLSPcf”
- 如果不存在,请添加另一节“python.experiments.optInto”
- 在选项部分,添加
(引用)“pythonJediLSP”
- 保存settings.json,然后重新启动VSCode
- Python关键字上的鼠标悬停工具提示现在应该可以工作了
pythonJediLSPcf
或pythonJediLSP
:
- 文件>首选项>设置
- 在搜索设置中,开始键入
python.experience
- 在Python›实验:选择进入下,单击设置中的编辑。json
- 在
“python.experiments.optin”部分中,添加
(引用)“pythonjedlsp”
- 保存settings.json,然后重新启动VSCode
- Python关键字上的鼠标悬停工具提示现在应该可以工作了
pythonJediLSP
:
- 根据我的经验,这是该功能正常工作所需的实验。如果您已经启用了该实验,那么请确保您没有
。如果有,请按照第一个子标题中的说明禁用它。如果它继续不起作用,则可能存在另一个冲突这是我自己没有经历过的pythonJediLSPcf
我正在发布一个关于此问题的GitHub问题,并将在完成后使用链接更新此答案。我只有ms python扩展,没有此功能(python 3.8)。他一定安装了其他扩展。我看不出这两个语言服务器(PyLance和Microsoft)有什么不同Pylance没有参与进来——他只安装了两个扩展,ms python和它强制的jupyter笔记本扩展。我应该补充一点,类和变量名之类的东西上的鼠标悬停确实能正常工作。@Rayanth-你能给我们提供一个具体的例子来重现这个问题吗?我想说明的部分原因是找出可能的不同之处-我不知道如何复制它,当我们在5台机器上执行此操作时,3台工作,2台不工作。我将编辑OP以添加以下步骤