Visual Studio Code Python – 2022 年 5 月更新 – Black、isort 和 Jupyter Powertoys

2022-06-07 15:44:33 +08:00
 winffee

我们很高兴地宣布,2022 年 5 月发布的适用于 Visual Studio Code 的 PythonJupyter 扩展现已推出!

在此版本中,我们加入了三个新扩展: BlackisortJupyter Powertoys

如果您有兴趣,可以在我们的日志中查看 PythonJupyterPylance扩展的完整更新内容。

Black

正如我们曾表示的,我们的团队正在努力将我们在 Python 扩展中提供的工具支持分解为单独的扩展,以提高性能和稳定性。

我们现在有了一个新的 Black扩展,即 Python 格式化程序。 与 pylint扩展类似,这个新扩展使用语言服务器协议来提供格式支持,并且它附带最新版本的 Black——因此您不再需要将它安装在 Python 环境中。

今天您可以通过从市场上安装这个新扩展来试用它。 然后打开一个 Python 文件,右键单击编辑器并选择"Format document with ..."。 您还可以从命令面板( Ctrl + Shift + P 或 ⌘+ ⇧ + P )运行"Format document with ..."命令。 如果您有任何问题或功能请求,您可以将它们提交到 GitHub 存储库

Isort

我们还有一个新的扩展,可以使用 isort对导入进行排序。 当您打开文件并且您的导入不遵循 isort 的标准时,它将显示错误诊断并提供代码操作来修复导入顺序。

浏览器上的 Jupyter Notebooks

Jupyter扩展现在可以安装为可以与 vscode.dev一起使用的 Web 扩展。 不过功能目前受到限制,仅支持在不需要 https 的 Jupyter 服务器上运行的笔记本(.ipynb 文件)。

如果您想试验该功能,请从本地计算机启动 Jupyter:

jupyter --no-browser --NotebookApp.allow\_origin\_pat=https://.\*\.vscode-cdn\.net

并使用此命令连接到它: Jupyter: Specify Jupyter server for connections

团队将在即将发布的版本中启用许多功能,包括:

Jupyter Powertoys 扩展

Jupyter 团队很高兴地宣布推出 Jupyter Powertoys扩展,该扩展为使用 Jupyter 笔记本提供实验性功能。 在其第一个版本中,以下功能已被原型化:

我们很乐意让您试一试,让团队知道您的想法,以便更多的用户支持该功能!

有关更多信息,请参阅 vscode-jupyter-powertoys存储库中的 README 文件。

Jupyter 内核改进

对内核处理进行了许多更新:

其他更改和增强

我们还添加了一些小的增强功能并修复了用户请求的问题,这些功能应该可以改善您在 Visual Studio Code 中使用 Python 和 Jupyter Notebooks 的体验。 一些显著的变化包括:

我们还要特别感谢本月的贡献者:

Quan Zhuo:修复从源代码构建时预构建的 ripgrep 二进制文件下载失败(https://github.com/microsoft/vscode-python/issues/19036vscode-python#19036

Dr-Irv:改进了使用 pandas 时的 IntelliSense ,这要归功于几个 pandas 存根修复(python-type-stubs#186python-type-stubs#187python-type-stubs#188python-type-stubs#190

sunyinqi0508:修复文件路径包含特殊字符时的错误(vscode-python#18829

Capphosra:用更安全的方法替换 Buffer 构造函数以减少安全问题。 (vscode-jupyter#9562)

通过从 Marketplace 下载 Python扩展和 Jupyter扩展来尝试这些新的改进,或者直接从 Visual Studio Code 中的扩展视图安装它们( Ctrl + Shift + X 或 ⌘+ ⇧ + X )。 您可以在文档中了解有关 Visual Studio Code 中 Python 支持的更多信息。 如果您遇到任何问题或有建议,请在 Python VS Code GitHub页面上提出问题

2959 次点击
所在节点    Visual Studio Code
13 条回复
winffee
2022-06-07 15:46:51 +08:00
正如大家所见,从本月开始,我们会发布 VS Code Python 插件相关的内容,欢迎感兴趣的同学关注和提供反馈!
zhangxh1023
2022-06-07 15:46:56 +08:00
点进来才发现不是 java...
FirerWire3
2022-06-07 16:57:49 +08:00
越拆越多,装了几十个插件,已经受不了咯。拆出去的插件我是不装了,全用 pre-commit 集成使用,不依赖 VS Code 。
Kobayashi
2022-06-07 22:04:38 +08:00
我不明白了,为什么 linter ,formatter 也要拆成扩展?
xuboying
2022-06-08 10:39:08 +08:00
感觉是让新入门 python 的小白从一开始就习惯用代码整理功能,这本身是一个好习惯。

毕竟有很多已经掌握了 python 的人不愿意或者懒得用整理器。习惯问题。
uni
2022-06-08 14:23:25 +08:00
之前一直在用 yapf ,跟这个 black 相比怎么样呢?
winffee
2022-06-08 14:39:48 +08:00
@Kobayashi 以前在有多个版本 Python 编译器的情况下,在切换编译器时总是会弹出提示让装 linter 等等,因为它默认是装在一个 Python 版本下面的,所以当你换了一个 python 版本又得安装一次。所以很多人呼吁“为什么要一遍遍提醒我,不能自动安装全局吗?”这就是为什么我们把 linter 和 formatter 拆分出来,正是让用户只需要安装一次,就可以自动配置所有的 Python 编译器。
winffee
2022-06-08 14:42:53 +08:00
@xuboying 没错,不是所有人都需要这两个插件,所以把选择留给用户吧
winffee
2022-06-08 15:20:28 +08:00
@uni yapf 的特点是支持多种格式化的风格,其更多的可能是使得代码看起来更整洁更友好。
black 可以说是目前最流行最多人使用的 python 格式化工具,他有统一的格式化标准。简单的使用方式以及极少的定制化选项。所以 black 允许我们自定义的余地较小。但这样也使得我们的代码更符合标准,也不失为一种最好的选择。
Kobayashi
2022-06-09 09:25:32 +08:00
原来也可以通过 python.formatting.blackPath 参数指定 black 位置非当前 venv 啊? flake8, pylint 位置同理。我想搞明白的是这个“使用语言服务器协议来提供格式支持”,有没有什么优势。嗯……有时间再研究。
winffee
2022-06-10 09:12:07 +08:00
@Kobayashi 语言服务器协议 (LSP)背后的想法是标准化工具和服务器如何通信的协议,因此单个语言服务器可以在多个开发工具中重复使用,并且开发工具可以以最小的成本支持语言。
Kobayashi
2022-06-10 09:38:45 +08:00
我明白什么是 LSP ,vim 中也在用着。我不明白的是把格式化工具集成到 LSP 和直接使用它有什么区别。我的理解格式化工具就是接受一个文件,帮你格式化,毕竟大多格式化工具支持的命令行用法就是这样。集成或者不集成到 LSP 初步感觉不会有什么区别。周末再查吧。
winffee
2022-07-08 09:29:44 +08:00
@Kobayashi 这样做的优点之一是提高稳定性,这要比在 python 扩展中使用更加简化。如果需要,可以提供 black 格式化程序路径,但未来的规划是弃用 python 扩展中的 black 支持,功能会迁移到这个新的扩展。LSP 委托协议的优点是用户不必安装 black 或者在他们的机器上提供 balck ,因为扩展已经带有 black 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/857932

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX