V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
winffee
V2EX  ›  Visual Studio Code

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

  •  
  •   winffee · 67 天前 · 1541 次点击
    这是一个创建于 67 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们很高兴地宣布,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
       67 天前
    正如大家所见,从本月开始,我们会发布 VS Code Python 插件相关的内容,欢迎感兴趣的同学关注和提供反馈!
    zhangxh1023
        2
    zhangxh1023  
       67 天前
    点进来才发现不是 java...
    FirerWire3
        3
    FirerWire3  
       67 天前
    越拆越多,装了几十个插件,已经受不了咯。拆出去的插件我是不装了,全用 pre-commit 集成使用,不依赖 VS Code 。
    Kobayashi
        4
    Kobayashi  
       66 天前 via Android
    我不明白了,为什么 linter ,formatter 也要拆成扩展?
    xuboying
        5
    xuboying  
       66 天前
    感觉是让新入门 python 的小白从一开始就习惯用代码整理功能,这本身是一个好习惯。

    毕竟有很多已经掌握了 python 的人不愿意或者懒得用整理器。习惯问题。
    uni
        6
    uni  
       66 天前
    之前一直在用 yapf ,跟这个 black 相比怎么样呢?
    winffee
        7
    winffee  
    OP
       66 天前
    @Kobayashi 以前在有多个版本 Python 编译器的情况下,在切换编译器时总是会弹出提示让装 linter 等等,因为它默认是装在一个 Python 版本下面的,所以当你换了一个 python 版本又得安装一次。所以很多人呼吁“为什么要一遍遍提醒我,不能自动安装全局吗?”这就是为什么我们把 linter 和 formatter 拆分出来,正是让用户只需要安装一次,就可以自动配置所有的 Python 编译器。
    winffee
        8
    winffee  
    OP
       66 天前
    @xuboying 没错,不是所有人都需要这两个插件,所以把选择留给用户吧
    winffee
        9
    winffee  
    OP
       66 天前   ❤️ 1
    @uni yapf 的特点是支持多种格式化的风格,其更多的可能是使得代码看起来更整洁更友好。
    black 可以说是目前最流行最多人使用的 python 格式化工具,他有统一的格式化标准。简单的使用方式以及极少的定制化选项。所以 black 允许我们自定义的余地较小。但这样也使得我们的代码更符合标准,也不失为一种最好的选择。
    Kobayashi
        10
    Kobayashi  
       65 天前
    原来也可以通过 python.formatting.blackPath 参数指定 black 位置非当前 venv 啊? flake8, pylint 位置同理。我想搞明白的是这个“使用语言服务器协议来提供格式支持”,有没有什么优势。嗯……有时间再研究。
    winffee
        11
    winffee  
    OP
       64 天前
    @Kobayashi 语言服务器协议 (LSP)背后的想法是标准化工具和服务器如何通信的协议,因此单个语言服务器可以在多个开发工具中重复使用,并且开发工具可以以最小的成本支持语言。
    Kobayashi
        12
    Kobayashi  
       64 天前
    我明白什么是 LSP ,vim 中也在用着。我不明白的是把格式化工具集成到 LSP 和直接使用它有什么区别。我的理解格式化工具就是接受一个文件,帮你格式化,毕竟大多格式化工具支持的命令行用法就是这样。集成或者不集成到 LSP 初步感觉不会有什么区别。周末再查吧。
    winffee
        13
    winffee  
    OP
       36 天前
    @Kobayashi 这样做的优点之一是提高稳定性,这要比在 python 扩展中使用更加简化。如果需要,可以提供 black 格式化程序路径,但未来的规划是弃用 python 扩展中的 black 支持,功能会迁移到这个新的扩展。LSP 委托协议的优点是用户不必安装 black 或者在他们的机器上提供 balck ,因为扩展已经带有 black 。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2563 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:15 · PVG 17:15 · LAX 02:15 · JFK 05:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.