venvstacks
Installation
SKILL.md
venvstacks
任务目标
- 本 Skill 用于:掌握 venvstacks 分层 Python 虚拟环境打包和发布技术
- 能力包含:三层环境架构定义、依赖锁定、环境构建、本地导出、归档发布
- 触发条件:当用户需要打包 Python ML/AI 应用并独立分发运行时环境时
前置准备
- 环境安装:
pipx install venvstacks # 或 pip install --user venvstacks - 依赖要求:uv>=0.5.0
操作步骤
标准流程
1. 定义环境栈 (venvstacks.toml)
[[runtimes]]
name = "cpython@3.11"
fully_versioned_name = "cpython@3.11.10"
requirements = [
"numpy",
]
[[frameworks]]
name = "sklearn"
runtime = "cpython@3.11"
requirements = [
"scikit-learn",
]
[[applications]]
name = "classification-demo"
launch_module = "launch_modules/sklearn_classification.py"
frameworks = ["sklearn"]
requirements = [
"scikit-learn",
]
2. 锁定层依赖
venvstacks lock sklearn_demo/venvstacks.toml
- 生成 requirements 文件夹
- 使用 pylock.toml 格式存储锁定的依赖
- 生成层锁定元数据文件
3. 构建环境栈
venvstacks build sklearn_demo/venvstacks.toml
- 创建 venv 环境
- 安装指定包
- 注入 sitecustomize.py 实现层链接
- 注入 postinstall.py 环境配置脚本
4. 本地导出(快速测试)
venvstacks local-export --output-dir demo_export sklearn_demo/venvstacks.toml
- 复制环境到指定目录
- 执行 postinstall.py
5. 发布归档
venvstacks publish --tag-outputs --output-dir demo_artifacts sklearn_demo/venvstacks.toml
- 生成可重现二进制归档
- 生成元数据文件
可选分支
当需要完整流水线时
# 一步完成锁定、构建、发布
venvstacks build --publish --tag-outputs --output-dir artifacts stack.toml
当需要多平台支持时
# 锁定(跨平台)
venvstacks lock stack.toml
# 分平台构建
venvstacks build --target linux-x64 stack.toml
venvstacks build --target win32-x64 stack.toml
venvstacks build --target darwin-arm64 stack.toml
# 发布
venvstacks publish --tag-outputs --output-dir artifacts stack.toml
资源索引
必要脚本
无(CLI 工具为主)
领域参考
-
- 何时读取:需要理解三层架构时
- 内容:Runtime、Framework、Application 层详解
-
references/stack-definition.md
- 何时读取:需要编写 venvstacks.toml 时
- 内容:TOML 配置格式、层定义规范
-
- 何时读取:需要了解 CLI 用法时
- 内容:lock、build、publish、local-export 详解
注意事项
三层架构
- Runtime:Python 解释器环境
- Framework:共享框架(如 PyTorch、scikit-learn)
- Application:独立应用组件
依赖锁定
- 使用 uv 进行联合依赖解析
- 跨平台锁定(pylock.toml 格式)
- 仅允许从二进制包安装
sitecustomize.py
- 实现层间依赖共享
- 允许代码导入下层包的模块
可重现构建
- 相同输入产生字节级相同的归档
- 记录完整的输入哈希和输出哈希
Related skills
More from morning-start/book-skills
rust-skills
Rust 程序设计语言完整技能集,采用元认知框架,涵盖基础语法、所有权系统、泛型 Trait、并发异步、Cargo 包管理等,支持 Layer 1/2/3 三层认知模型
10dashboard-skills
数据看板技能库,使用 Python + Streamlit + ECharts + Pandas 快速构建数据分析和可视化应用,掌握从数据处理到界面展示的完整技能体系
5git-skills
Git版本控制技能,掌握仓库管理、提交操作、分支协作、远程同步等核心能力,提供安全的操作指导和故障排除
3moonbit-skills
MoonBit(月兔)编程语言完整技能集,面向云与边缘计算的 AI 原生语言,涵盖核心语法、数据类型、函数式编程、工具链、包管理与多后端编译
3hermes-agent-config
Hermes Agent 配置系统技能库,掌握 Memory 持久化记忆、Context Files 上下文注入、Personality 个性化配置、AGENTS.md 工作手册和分层记忆系统的完整技能体系
3tauri-skills
Tauri v2 桌面应用开发技能
2