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

Visual Studio Code Python – 2023 年 2 月更新 - 自动选择环境和创建虚拟环境

  •  
  •   winffee · 2023-02-08 10:50:35 +08:00 · 2485 次点击
    这是一个创建于 659 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们很高兴地宣布 2023 年 2 月版的 Visual Studio Code PythonJupyter扩展现已推出!

    此版本包括以下改进:

    • 从激活的终端启动 VS Code 时自动选择环境

    • 使用命令 Python: Create Environmen 时可选择需求文件可选依赖项

    • 预发布:改进了 Pylance 对 pytest 的 IntelliSense 支持

    • Jupyter 内核选择器改进

    如果您有兴趣,可以在我们的变更日志中查看PythonJupyterPylance扩展的完整改进列表。

    从激活的终端启动 VS Code 时的自动选择环境

    当用户通过已激活 conda 或虚拟环境的终端启动 VS Code 时,VS Code 现在会检测到该激活的环境。根据环境类型,VS Code 自动选择环境本身,或询问用户是否要选择现有环境。此功能旨在通过自动选择环境而不需要手动选择来改进您的工作流程。

    https://user-images.githubusercontent.com/60238438/215604138-dcc177f4-cb1c-4f53-9b51-93db87c8123f.gif

    使用命令 Python: Create Environment 时可选择需求文件和可选依赖项

    我们将根据您的反馈继续改进Python: Create Environment命令!以前,当用户使用该命令创建环境时,该命令会搜索常见的需求和依赖文件并自动将它们加载到环境中。现在,该命令在工作区文件夹中查找需求文件,并允许用户多选任意数量的需求以快速选择安装。

    https://user-images.githubusercontent.com/60238438/215588859-87eeb24c-c671-40cd-897d-07544a73e1be.gif

    或者,Python 扩展检测并读取pyproject.toml 文件的[project.optional-dependencies]表中提供的可选依赖项。然后,我们使用pip install --editable 命令执行任何选定的可选依赖项的安装(执行可编辑安装将以它们在未来版本中成为pyproject.toml中的[build-system] 表为条件)。这被集成为 Python 中的快速选择:Python: Create Environment命令。

    https://user-images.githubusercontent.com/60238438/215588972-a2778aa2-be3f-403e-86eb-5a787642a3be.gif

    预发布:改进 Pylance 对 pytest 的 IntelliSense 支持

    我们很高兴地宣布在 Pylance 的预发布版本中支持 pytest fixtures 和参数化!此更新包括强大的功能,可以帮助您在使用 pytest 编写和维护清晰、简洁且易于理解的测试时更高效地工作。

    由于增加了对转到定义和查找所有引用的支持,您可以更方便地导航和阅读测试。此功能还支持使用符号重命名(F2) 进行快速更新:

    https://user-images.githubusercontent.com/45497113/215238812-b5ac8afd-6bb2-45e3-af25-9286cfc85017.gif

    Pylance 还为 pytest fixtures 和参数化参数提供补全,以帮助您更有效地编写测试:

    https://user-images.githubusercontent.com/45497113/216171777-c71749bc-78cc-44fc-bf2b-fad132ba47dc.gif

    将类型提示添加到 pytest fixture 参数可以帮助进一步提高测试的可读性并在错误成为问题之前捕获它。Pylance 现在提供了两个功能,使这个过程更加实用:您可以触发代码操作(在 macOS 上为 Cmd+.,在 Windows/Linux 上为 Ctrl+.)来注释 pytest 参数的类型,或者甚至通过"python.analysis.inlayHints.pytestParameters"设置启用嵌入提示(然后只需双击提示即可将其插入到您的代码中!)。

    https://user-images.githubusercontent.com/45497113/215239111-a671de9a-c7e9-4372-9469-8d6a476acf2f.gif

    Pylance 还将根据提供给装饰器的参数值推断参数化 pytest 参数的类型:

    https://user-images.githubusercontent.com/45497113/216172767-ca4e4132-127c-49de-89e8-a60039f2f4be.gif

    您可以通过安装Pylance 扩展的预发布版本来尝试这些更新,并在https://github.com/microsoft/pylance-release报告您可能遇到的任何问题。

    Jupyter 内核选择器改进

    我们继续改进 MRU (最近使用)内核选择器。它可以通过设置"notebook.kernelPicker.type"为启用"mru"。未使用的内核将移至辅助选择器"选择另一个内核..."。当您安装了最新的 Jupyter 扩展和 Python 扩展时,此选择器将按其来源(例如:"Jupyter 内核"、"Python 环境"等)对所有内核进行分组。

    其他变化和增强

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

    • Join Selected Cells ( kb(notebook.cell.joinSelected)) 在 Jupyter Notebooks 中将多个选定的单元格合并为一个单元格
    • 将输出回退呈现为 Jupyter 中受支持的 mimetype (vscode-jupyter#8635)
    • Pylance 代码操作 refactor.extract 的新类型:refactor 。extract.method 和 refactor.extract.variable(pylance-release#3803).

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

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

    6 条回复    2023-02-14 10:18:46 +08:00
    zhuangzhuang1988
        1
    zhuangzhuang1988  
       2023-02-08 11:09:14 +08:00
    微软牛逼啊。
    LaurelHarmon
        2
    LaurelHarmon  
       2023-02-08 11:38:17 +08:00 via Android
    2023 年了,Python 远程开发的提示还是动不动就失效,跟本地的稳定性没法比
    maye9999
        3
    maye9999  
       2023-02-08 14:40:39 +08:00
    还是跟 Pycharm 的语法分析差太远,各种本来没错的地方报错
    baozhibo
        4
    baozhibo  
       2023-02-09 09:10:51 +08:00
    佩服 op ,不知道分享这个帖子是工作内容,还是自己热爱,vs code 有新功能经常发帖宣传。
    winffee
        5
    winffee  
    OP
       2023-02-14 10:15:55 +08:00
    @LaurelHarmon 这与个性化设置有关,你可以在 github 中创建并描述您的问题以进行更详细的咨询。https://github.com/microsoft/vscode-python
    winffee
        6
    winffee  
    OP
       2023-02-14 10:18:46 +08:00
    @maye9999 你可以在 settings.json 中对 pylance 的智能感知进行更个性化的设置,比如你可以添加以下内容来忽略未定义变量报错信息:

    "python.analysis.diagnosticSeverityOverrides": {
    "reportUndefinedVariable": "none",
    },
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3594 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:33 · PVG 12:33 · LAX 20:33 · JFK 23:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.