Python环境管理工具

Zen是一个轻量级的Python环境管理工具,用于跟踪和管理多个Python环境,特别适用于机器学习和CUDA版本管理。

  • by vistralis
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 vistralis/zen

使用说明

禅


让Python环境安心。

更少的杂乱,更清晰。

一个目录用于所有Python环境。一个CLI来跟踪它们。不是另一个环境管理器,只是一个轻量级的cli,它能记住你不想做的事情。

你已经有足够的担心了。CUDA 13在哪个环境中?你是每晚用PyTorch还是稳定地进行实验的?你两周没碰过的那个项目中有什么在运行?

禅记得——所以你不必这么做。

它速度快、重量轻,在这里不是为了取代任何东西——只是为了让处理多个Python环境变得无痛,尤其是在涉及GPU和CUDA版本的情况下。

它还内置了 MCP服务器,因此AI编码代理可以通过结构化的工具调用来管理您的环境。

[!注意] 一个按原样共享的个人工具。用Rust编写的Vibecoded。没有承诺,没有路线图,没有保证。


安装

curl -sSf https://vistralis.org/zen/install.sh | sh

或者从源代码构建:

git clone https://github.com/vistralis/zen.git && cd zen
cargo build --release
cp target/release/zen ~/.local/bin/

开始使用

设置一次shell:

# Add to .bashrc or .zshrc
eval "$(zen hook bash)"   # or zsh

营造一个环境:

$ zen create ml_env
  ✓ Environment 'ml_env' created successfully.

$ zen activate ml_env     # alias: za ml_env
$ zen deactivate          # alias: zd

安装软件包——Zen将其委托给uv,因此速度很快:

$ zen install numpy scipy opencv-python         # into active env
$ zen install -n ml_env numpy scipy              # into specific env

# Need a specific CUDA build? Just pass the index:
$ zen install torch torchvision \
    --index-url https://download.pytorch.org/whl/cu130

一目了然:

$ zen list
★ ml_env           3.12.3  ✓  torch:2.10.0+cu130  numpy:2.3.5
  vision           3.12.3  ✓  torch:2.9.1+cu128   numpy:2.2.6
  experiment       3.12.3  !  torch:2.11.0.dev     numpy:2.4.2
  diffusion        3.12.3  ✓  torch:2.10.0+cu130  numpy:2.3.5
  data_pipeline    3.12.3  ✓                       numpy:1.26.4

  5 environments  ✓ 4 ok  ! 1 drift  ★ 1 fav

在所有环境中查找包:

$ zen find torch
  ml_env        torch  2.10.0+cu130
  vision        torch  2.9.1+cu128
  experiment    torch  2.11.0.dev20260129+cu126
  diffusion     torch  2.10.0+cu130

检查运行状况--符号链接损坏、CUDA冲突、缺少依赖项:

$ zen health ml_env
  ✓ Python binary          ok
  ✓ Symlink integrity      ok
  ✓ CUDA version           cu130 (consistent)
  ✓ Dependency conflicts   none detected

哲学

放下杂乱

你创建一个环境,安装一些软件包,启动一个项目。然后是另一个。还有一个。三周后,你盯着十五个目录 /envs/ 想知道其中一半是干什么用的。

知道所有东西在哪里

每个环境都会被跟踪——Python版本、包、CUDA堆栈、健康状态以及它属于哪个项目。所有这些都是可查询的。所有瞬间。

专为ML开发而设计

CUDA版本很重要。 cu128 和 cu130 不可互换。Zen跟踪每个环境中PyTorch的版本,检测CUDA版本混合,并允许您在具有CUDA感知版本匹配的环境中进行搜索。

你的项目,记住了

将环境链接到项目目录。下次你 cd 进入该项目和类型 zen activate --它选择了正确的一个。没有争论,没有思考。

$ zen link add ml_env
  ✓ Linked 'ml_env' to /home/user/projects/classifier

# Later, in that same directory:
$ zen activate
  ✓ Activated 'ml_env'

支持每个项目的多个环境——主环境、测试环境、实验环境——带有标签和默认值。

与AI代理协同工作

Zen内置了 MCP服务器 因此,AI编码助手可以通过结构化的工具调用来管理环境,而不需要shell访问。


命令

命令 它的作用
zen create <name> 创建新环境
zen add <path> 注册现有虚拟环境
zen rm <name> 删除环境(--cached 仅适用于DB)
zen activate [name] 激活(未指定名称时的智能选择)
zen deactivate 停用
zen list / zen ls 列出所有环境(-1 只有名字, -l 长)
zen info <name> 详细环境视图
zen install [-n env] <pkgs> 安装软件包
zen uninstall [-n env] <pkgs> 删除包
zen run <env> <cmd> 运行命令而不激活
zen find <pkg> 在所有环境中查找包
zen inspect <env> <pkg> 详细的包裹信息
zen diff <env1> <env2> 比较两种环境
zen health [name] 环境健康检查
zen link add/rm/list 项目-环境链接
zen label add/rm/list 用标签组织
zen note add/list/rm 附上备注
zen rename <old> <new> 重命名环境
zen template 创建、编辑、检查、导出/导入模板
zen mcp 启动MCP服务器

全参考→ docs/commands.md

配置

变量 默认值 描述
ZEN_HOME ~/.local/share/zen/envs 环境居住的地方
ZEN_DOJO ~/.config/zen 数据库和配置
export ZEN_HOME=/localdisk/envs   # fast SSD for your environments

运作原理

  • 标准静脉 --没有什么专有的,你的环境只是Python venvs
  • SQLite --一个小型数据库文件可以跟踪所有内容
  • 紫外线 --所有包装操作都委托给uv以提高速度
  • 壳钩 --当前shell中用于激活/停用的轻量级功能
  • 主控程序 --基于stdio的JSON-RPC用于AI代理集成

许可证

阿帕奇-2.0