VSCode 的 Python 自动导入扩展

问题描述 投票:0回答:10

有可用于 VSCode 的 Python 自动导入扩展/插件吗?

我所说的自动导入是指自动导入Python模块。 Eclipse 和 Intellij 具有 Java 的此功能。

python visual-studio-code vscode-extensions python-module auto-import
10个回答
34
投票

VSCode 团队最近发布了 Pylance

特点

  • 文档字符串
  • 签名帮助,带有类型信息
  • 参数建议
  • 代码完成
  • 自动导入(以及添加和删除导入代码操作)
  • 键入时报告代码错误和警告(诊断)
  • 代码概要
  • 代码导航
  • 代码镜头(参考/实现)
  • 类型检查模式
  • 本机多根工作区支持
  • IntelliCode 兼容性
  • Jupyter 笔记本兼容性

12
投票

不,但它很快就会成为 vscode-python 的一部分:https://github.com/Microsoft/vscode-python/pull/636

编辑:请参阅@Eric 的回答,他构建了这样的扩展。

编辑2:参见@Eyal Levin的回答,提到了这样的扩展(Pylance)。


12
投票

(截至 2023 年 8 月更新答案)

这些为我做到了:

  "python.analysis.indexing": true,
  "python.analysis.autoImportCompletions": true,

如果由于索引太多文件而导致计算机速度过慢,请考虑使用

"python.analysis.packageIndexDepths"
或使用
"python.analysis.exclude"
指定要包含在索引中的目录模式和深度。

请注意,我正在使用 Pylance(目前是默认值,截至 2023 年 1 月)。

查看 VSCode python 设置参考,了解有关每个设置的更多信息。

编辑 2023 年 8 月:删除

"python.analysis.autoImportUserSymbols"
,因为 @YellowStrawHatter 指出它不再存在。


8
投票

我已经构建了支持Python的自动导入扩展。它允许您完全自定义导入写入文件的方式、修改导入路径、名称、相对于其他导入的排序。 Python 插件甚至可以让您将导入与额外的换行符“分组”。


6
投票

来自https://github.com/microsoft/python-language-server/issues/19#issuecomment-587303061

对于那些像我一样想知道如何触发自动导入的人,这里有 步骤。

  1. 通过删除选中来启用 Microsoft Python Language Server
    Python: Jedi Enabled
    在您的设置中。
  2. 重新加载 VSCode 窗口。
  3. 将鼠标悬停在要导入的变量上,然后单击
    Quick
      fix...

最后一步,如果显示

No quick fixes available
Checking for quick fixes
,您可能需要等待一段时间 扩展已完成代码分析。还可以设置一个 触发快速修复的快捷方式。



2
投票

这在官方 Microsoft python 扩展中得到支持,但由于某种原因,我发现它最近被禁用或不再默认。我必须切换的设置是

"python.analysis.autoImportCompletions": true,


1
投票

您可以在 VSCode 扩展商店中找到它。它的名字是IMPORTMAGIC。它的效果非常棒。它将包括您在脚本中使用的所有模块。

它有代码操作 ctrl + . ,它也将导入库。


1
投票

您可以将下面的设置(true)设置为

settings.json
以进行自动导入。 *安装Python扩展时自动安装的Pylance扩展具有以下设置(true),默认情况下为
false
,您可以看到我的答案解释如何打开
settings.json

// "settings.json"

{
    ...
    "python.analysis.autoImportCompletions": true
}

然后,它会显示所有匹配的属性和模块,如下所示:

然后按Enter即可自动导入您选择的内容,如下图:

此外,如果您没有将下面的设置(true)设置为

settings.json
进行自动导入:

// "settings.json"

{
    ...
    // "python.analysis.autoImportCompletions": true
}

然后,就只显示如下:


0
投票

如果您希望从脚本或子脚本自动导入和自动下载缺少的模块,您可能会发现这个基于Python的模块很有用。不仅适用于 VSCode,还适用于任何 IDE 或编辑器。

© www.soinside.com 2019 - 2024. All rights reserved.