Visual Studio Code Python 2022 年 5 月更新 Black、isort 和 Jupyter Powertoys - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
winffee
V2EX    Visual Studio Code

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

  •  
  •   winffee 2022-06-07 15:44:33 +08:00 3741 次点击
    这是一个创建于 1296 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们很高兴地宣布,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 存储库

    GIF

    Isort

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

    GIF

    浏览器上的 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

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

    • 基于"https"的服务器
    • 智能感知
    • 数据查看
    • 可变查看
    • 互动窗口
    • IPyWidgets
    • 绘图查看
    • 出口

    Jupyter Powertoys 扩展

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

    • 内核管理面板
    • 上下文帮助
    • 执行分组

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

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

    Jupyter 内核改进

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

    • 为了让用户更及时的发现内核崩溃,扩展程序现在在单元格输出中显示此信息。
    • 现在,当在执行过程中检测到某些已知错误时,单元格输出中会提供故障排除指南。
    • 解决内核执行问题可能是一个棘手且耗时的过程。 因此,我们在 wiki 上整理了一个疑难解答部分,希望可以帮助您更快地找到解决方案。 当然,我们的 GitHub Discussions论坛也是获得帮助的绝佳资源。

    其他更改和增强

    我们还添加了一些小的增强功能并修复了用户请求的问题,这些功能应该可以改善您在 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页面上提出问题

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

    毕竟有很多已经掌握了 python 的人不愿意或者懒得用整理器。习惯问题。
    uni
        6
    uni  
       2022-06-08 14:23:25 +08:00
    之前一直在用 yapf ,跟这个 black 相比怎么样呢?
    winffee
        7
    winffee  
    OP
       2022-06-08 14:39:48 +08:00
    @Kobayashi 以前在有多个版本 Python 编译器的情况下,在切换编译器时总是会弹出提示让装 linter 等等,因为它默认是装在一个 Python 版本下面的,所以当你换了一个 python 版本又得安装一次。所以很多人呼吁“为什么要一遍遍提醒我,不能自动安装全局吗?”这就是为什么我们把 linter 和 formatter 拆分出来,正是让用户只需要安装一次,就可以自动配置所有的 Python 编译器。
    winffee
        8
    winffee  
    OP
       2022-06-08 14:42:53 +08:00
    @xuboying 没错,不是所有人都需要这两个插件,所以把选择留给用户吧
    winffee
        9
    winffee  
    OP
       2022-06-08 15:20:28 +08:00   1
    @uni yapf 的特点是支持多种格式化的风格,其更多的可能是使得代码看起来更整洁更友好。
    black 可以说是目前最流行最多人使用的 python 格式化工具,他有统一的格式化标准。简单的使用方式以及极少的定制化选项。所以 black 允许我们自定义的余地较小。但这样也使得我们的代码更符合标准,也不失为一种最好的选择。
    Kobayashi
        10
    Kobayashi  
       2022-06-09 09:25:32 +08:00
    原来也可以通过 python.formatting.blackPath 参数指定 black 位置非当前 venv 啊? flake8, pylint 位置同理。我想搞明白的是这个“使用语言服务器协议来提供格式支持”,有没有什么优势。嗯……有时间再研究。
    winffee
        11
    winffee  
    OP
       2022-06-10 09:12:07 +08:00
    @Kobayashi 语言服务器协议 (LSP)背后的想法是标准化工具和服务器如何通信的协议,因此单个语言服务器可以在多个开发工具中重复使用,并且开发工具可以以最小的成本支持语言。
    Kobayashi
        12
    Kobayashi  
       2022-06-10 09:38:45 +08:00
    我明白什么是 LSP ,vim 中也在用着。我不明白的是把格式化工具集成到 LSP 和直接使用它有什么区别。我的理解格式化工具就是接受一个文件,帮你格式化,毕竟大多格式化工具支持的命令行用法就是这样。集成或者不集成到 LSP 初步感觉不会有什么区别。周末再查吧。
    winffee
        13
    winffee  
    OP
       2022-07-08 09:29:44 +08:00
    @Kobayashi 这样做的优点之一是提高稳定性,这要比在 python 扩展中使用更加简化。如果需要,可以提供 black 格式化程序路径,但未来的规划是弃用 python 扩展中的 black 支持,功能会迁移到这个新的扩展。LSP 委托协议的优点是用户不必安装 black 或者在他们的机器上提供 balck ,因为扩展已经带有 black 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2944 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 13:45 PVG 21:45 LAX 05:45 JFK 08:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86