标签: none

写这篇文章的目的是希望能整合一些网上已有的先进思路,目前中文互联网上对于工具和工程上的问题其实并没有与时俱进,在最近发现 vscode 可以使用配置文件 profile 来隔离各个语言的时候,我在搬运过程发现,原来隔离环境之后,vscode 竟然变得这么快速而开箱即用,让我很吃惊。同时,配合目前时下非常先进的工具(例如 Astral 团队 开发的 uv, ruffty 等),实际上 Python 的开发体验是非常好的,而且安装插件很多也不臃肿。本文的目的就是记录我在这其中发现的一些最近可以使用的工具以及提高生产效率的法门。

VSCode Profile: 配置文件

VSCode 这个功能其实出来的时间已经不短了,但是奇怪的是至少我周围使用的人并不多,鉴于其便利程度,我的 Python 配置已经完全隔离并装上了新的扩展。这个功能的主要作用是:如果你进行多语言开发,那么你可能并不想在开发某种语言的时候,还要加载其他的,例如使用 Python 的同时,却加载了 $\LaTeX$ 的包;或者说你对功能有一定分开的需求,包括你做 APP 开发的时候,此时却加载 Django 的扩展,这明显就是拖慢速度的问题。

建立一个新的 Profile

首先点击左上角的“文件”或者 "Files" ,然后可以看到新建配置文件的选项,此时在这里面新建。

vscode profile.png

Profile 目前不支持将你已经很累赘的默认的插件分配,需要先删除默认配置当中的插件,再在你新的配置文件当中安装,不过隔离之后,再安装插件就只会装在当前的配置文件当中,会进入下面图示的界面:

vscode-proofile-python.png

这里需要注意一些点:

  • 名字随便起,然后为了启动速度,我认为单个语言或者单个场景建立一个 Profile 比较合适(例如数据科学就同时装 Python 和 R 还有 Julia 相关的插件),例如我的 Writing 是 Markdown, Typst 和 $\LaTeX$ 三个语言一起的。
  • 单个 Profile 实测下来基本和记事本一样的打开速度了,如果插件很累赘的真的很建议这样分开;
  • 可以单独建一个 WSL 和 SSH 的 Profile ,这样打工干活的时候不会污染自己的 Profile.

插件安装

刚刚说到,对于插件,默认情况是只安装到现在的 profile 当中的,但是对于一些多语言插件,类似 Better Comments ,实际上也可以应用到所有配置文件当中:

vscode-profile-settings.png

我自己的 Python Profile

Python 环境管理

无论是古法编程还是 AI ,其实环境管理都是一个非常需要重视的问题,在这一点上,许多人入门一般都会被推荐很多类型的工具,包括但是不限于:

  • Python venv ,这个也就是官方的工具;
  • virtualenv ,早期第三方环境管理;
  • Poetry ,一个也比较流行的项目工具;
  • Rye ,其实就是 uv 的前置项目,现在已经不维护了;

在这里,我会更推荐 uv ,原因无他,使用 Rust 写的,非常快速且易用。下面是 Astral 官方给出的对 Transformer 库的安装配置过程的速度对比,可以看到 Rust 写的库发挥的速度优势确实恐怖,虽然我本人将来不见得会学习 Rust,但是对于 Rust 重写一些工具,我个人很建议享受这些便利。

uv speed.png

同样的还有 Ruff ,这是个很好的 Formatter 工具,而且 uvruff 都默认 Opencode 适配,我感觉写起来挺爽的,AI 配环境和借助 LSP 的体验都绝佳。

可以说我大概理解了为什么 OpenAI 要买下 Astral 团队了,uv 可以算是把控 AI Python 编程的入口命脉:环境管理,大家可以说我们还有 venv 和 Poetry ,但是如果 Codex 直接进行了默认适配,将来的体验想必会很好,就像 Anthropic 其实也买下了 bun 也是一个道理,双方的思路都是很不错的,不过我可能更看好 uv.

ty 替换 Pylance

为了尝鲜,以及受够了过慢的 Pylance ,我迁移到了目前还在测试版的 ty ,搭配 ruff 就非常快了,而且在将来,应该可以预见到加入到 opencode 当中,只是现在 ty 还是有些 bug.

开发流程可以变为:

  • 使用 uv tool install 安装全局需要的一些工具,包括 ruff 等;
  • uv init 初始化项目,uv venv 建立虚拟环境,uv add 或者 uv pip install 添加依赖;
  • AI 或者古法编程,然后使用 ruffty 进行类型和格式检查,ty 也给出了 LSP.

vscode-ty.png

不过 ty 还是稍微有些 bug ,例如最近就发现了有个导入的 bug: issue 链接 ,希望将来可以更好地解决,这个问题是 ty 没法和 vscode 指示的解释器统一,所以正常写 numpy 等都会报错说找不到 numpy ,一个解法就是在 pyproject.toml 当中加上:

[tool.ty.environment]
python = ".venv"

我的配置

我目前一切从简,除了 uv 三件套外,插件只装了 Pylance (用于解释器配置),Jupyter 还有 Path Intellisense.

添加新评论

(所有评论均需经过站主审核,违反社会道德规范与国家法律法规的评论不予通过)