Visual Studio Code 快速修复 & Python

28

Visual Studio Code无法填充“快速修复”上下文下拉菜单,只显示“没有可用的代码操作”。

Python扩展已安装,同时安装了python3.7.3和flake8、pep8。


1
我认为你需要更具体一些。你能提供一张截图吗? - yoursweater
7个回答

16

目前,VS Code 的 Python 扩展没有提供任何快速修复功能。


这是真的吗??这让人很失望。我正在从Atom转换到VS Code……我错过了这个功能。 - Bhanu Tez
@BhanuTez,你需要更具体地说明你想要哪些快速修复。当你知道具体想要哪个时,请在https://github.com/microsoft/vscode-python上投票支持现有问题或新开一个问题。 - Brett Cannon
在Atom中,我们有“beautify”扩展程序,支持几乎所有的编程语言。当我想要美化我的Python代码时,我只需按下Ctrl+Alt+B,这将根据PEP8(甚至是Flake8)美化我的Python代码(基本上是任何代码)。但是,在VS Code中缺少此功能。 - Bhanu Tez
@BhanuTez 实际上,Python 扩展程序通过格式支持实现了这一点。 - Brett Cannon
如何在VS Code中禁用Peek问题? - Galapagos

4

2021年解决方案。

我在使用VSCode 1.54.2版的Python时也遇到了相同的问题。

通过安装Pylance扩展并将其设置为默认的Python语言服务器(在安装后会弹出一个消息询问是否要将其设置为默认的Python语言服务器),我成功地解决了这个问题。现在一切都运行得非常流畅。


2
尽管这个答案很有帮助,但它需要更多的解释。首先,对于习惯于使用常规Python扩展的人来说,它是否会产生意外的副作用?除了“完美运行”之外,人们还需要期待什么其他的东西吗? - Nuclear03020704
很遗憾,Pylance不支持VS Codium(“不跟踪的Visual Studio”)。另请参见https://github.com/microsoft/pylance-release/issues/791。 - Stefan
这对我有用,尽管我不得不进入设置并手动更改默认的Python语言服务器。 - dimani128

3

Python扩展开始支持快速修复。

Visual Studio Code中的Python - 2019年11月发布版 | Python

然而

Python扩展ver.2020.1.580382020.1.57204存在bug,无法显示“快速修复”。

解决方案

方案A:使用旧版本的Python扩展

如果您尚未安装Python扩展,请先安装一次。

通过按照下面的答案中的步骤安装ver.2019.11.507942019.11.49689

vs code - 回滚扩展/安装特定的扩展版本 - Stack Overflow

方案B:使用Python扩展的Insiders版本

安装Visual Studio Code - Insiders。

下载Visual Studio Code Insiders

安装Python扩展,然后单击[需要重新加载]按钮。

打开设置编辑器。(Ctrl + ,)

按关键字搜索:“Insiders Channel”,然后将下拉列表更改为“daily”或“weekly”,并保存设置。 然后,Visual Studio Code开始下载Python扩展的Insider版本。 (下面的状态栏显示进度)

当弹出消息“请重新加载Visual Studio Code以使用Python扩展的Insider版本。”时,请单击[重新加载]按钮。

要求

不要忘记使用快速修复功能有两个要求。

  • 使用Microsoft Python Language Server
  • 启用linting

使用Microsoft Python Language Server

在您的settings.json文件中将python.jediEnabled设为false。

启用linting

打开命令面板。(查看>命令面板... 或F1或Ctrl + Shift + P)

运行“Python:启用linting”命令。

在下拉菜单中选择“On”。

参见:在Visual Studio Code中编辑Python代码


1

最近我也尝试了Sourcery,这是一个VSCode Python重构扩展,提供更多的重构工具,有助于更清晰地实现某些代码行并消除其中的错误。


0

在阅读了许多关于此问题的文章之后,我稍微改善了我的状况。右键从来没有出现任何东西,但我可以按Ctrl + 句号(如果你在美国则为period)来显示建议的导入 - 有时候。

我已经在VS Code中安装了Pylance(因此您可能也安装了),这应该是默认的linter,但为了保险起见,我在VS Code设置中强制启用了它:

// Defines type of the language server (should default to Pylance if installed anyway)
    "python.languageServer": "Pylance",
    

这些评论是我自己写的。但是当我阅读了有关 PyLance 的注释后,似乎您需要通过添加以下行来启用此设置:

 // Offer auto-import completions.
    "python.analysis.autoImportCompletions": true,

说了这么多,这个功能现在又停止工作了!我还是留着它,以防万一:a)它能给任何人提供想法;b)我再次让它工作起来并回来编辑这个答案。


0

0
正如其他人提到的,现在已经支持这个功能,但是我无法让它正常工作。我尝试升级VS Code,重新安装Python扩展和Pylance,切换到预发布版本,重新加载VS Code,将Pylance设置为Python的默认语言服务器等等。最后起作用的是查看我的JSON设置,并摆脱不再支持/冲突和相似的设置(用户和工作区都要删除)。基本上,当你在VS Code中打开JSON时,所有被突出显示的设置都要删除。然后,重新加载VS Code后,它神奇地起作用了:当我将光标移动到对象定义(例如类的名称)时,灯泡在一两秒后显示出来。

你删除了哪些设置?它们与 https://stackoverflow.com/q/77283648/11107541 有关吗? - undefined
我记不清了,但是使用二分法分割,你可以在log2(n)次迭代中找到有问题的设置。也许先移除所有设置,看看我的解决方案是否适用于你。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接