mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-06-06 09:10:41 +08:00
feat: 拆分 environment-setup 为 Python/Node.js 运行时双核心 + 父级路由
新增双核心 skill(深度集成 DesireCore Hatch/Volta + HTTP API + Socket.IO): - python-runtime v1.0.1:Python 运行时管理 · 四级降级:HTTP API → Hatch CLI 绝对路径 → 系统包管理器 → pyenv · references:hatch-desirecore / pyenv-fallback / virtualenv / troubleshooting · scripts/probe-python.sh:输出 JSON 快照供 Claude 解析决策 - nodejs-runtime v1.0.1:Node.js 运行时管理 · 四级降级:HTTP API → Volta CLI → 系统包管理器/NodeSource → nvm/fnm · references:volta-desirecore / nvm-fallback / package-managers / troubleshooting · scripts/probe-node.sh:输出 JSON 快照(含 volta_tools / package_json_volta 等) environment-setup → dev-environment-setup v2.0.1(重命名 + 重写为 router): - 从 1380 行手册瘦身为 ~150 行索引 - 仅负责容器(Docker/Podman)/ WSL2 / 办公依赖速查 / 系统工具 - references/desirecore-runtime.md 沉淀 Hatch/Volta 路径表 + HTTP API 速查 + Socket.IO 事件契约,作为两个核心 skill 的共享底座 - references/decision-tree.md 定义四级降级决策树 - scripts/probe.sh + probe.ps1 系统级 JSON 探测 三个 SKILL.md 的 L0 改为场景驱动结构(何时使用 / 何时不要用 / 怎么做), 让 AI 凭名字与 L0 即可判断匹配场景。 注册更新: - builtin-skills.json:新增 python-runtime / nodejs-runtime / dev-environment-setup (原 environment-setup 移除),按字母序,共 21 个 skill - manifest.json:totalSkills 19→21,lastUpdated 2026-05-02 下游同步: - docx / pdf / xlsx / pptx 中的环境引用从 environment-setup 拆分为 python-runtime / nodejs-runtime / dev-environment-setup 三向指引 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
145
skills/python-runtime/references/virtualenv.md
Normal file
145
skills/python-runtime/references/virtualenv.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# Python 虚拟环境
|
||||
|
||||
虚拟环境隔离项目依赖,避免污染全局环境。**强烈建议每个项目独立 venv**。
|
||||
|
||||
## venv(标准库,首选)
|
||||
|
||||
```bash
|
||||
# 创建(Python 3.3+ 自带)
|
||||
python3 -m venv .venv
|
||||
|
||||
# 激活
|
||||
# macOS / Linux:
|
||||
source .venv/bin/activate
|
||||
# Windows CMD:
|
||||
.venv\Scripts\activate.bat
|
||||
# Windows PowerShell:
|
||||
.venv\Scripts\Activate.ps1
|
||||
|
||||
# 验证(路径应指向 .venv)
|
||||
which python # macOS / Linux
|
||||
where python # Windows
|
||||
|
||||
# 安装依赖
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 退出
|
||||
deactivate
|
||||
```
|
||||
|
||||
### 用 Hatch 安装的 Python 创建 venv
|
||||
|
||||
```bash
|
||||
~/.desirecore/runtime/hatch/local/3.12/python/bin/python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
```
|
||||
|
||||
## pipx(全局 CLI 工具)
|
||||
|
||||
`pipx` 把每个 CLI 工具装在独立 venv 里,对外暴露 shim,不污染系统/项目 Python。
|
||||
|
||||
```bash
|
||||
# 安装 pipx
|
||||
brew install pipx # macOS
|
||||
sudo apt install pipx # Ubuntu/Debian
|
||||
pip install --user pipx # 通用兜底
|
||||
pipx ensurepath
|
||||
exec "$SHELL"
|
||||
|
||||
# 安装 CLI 工具
|
||||
pipx install black
|
||||
pipx install ruff
|
||||
pipx install markitdown
|
||||
pipx install poetry
|
||||
pipx install uv
|
||||
|
||||
# 升级
|
||||
pipx upgrade-all
|
||||
|
||||
# 卸载
|
||||
pipx uninstall black
|
||||
|
||||
# 列表
|
||||
pipx list
|
||||
```
|
||||
|
||||
适用场景:black / ruff / mypy / poetry / uv / markitdown 等命令行工具。
|
||||
|
||||
## conda / miniconda(数据科学)
|
||||
|
||||
适用于:需要 BLAS / CUDA / 非 Python 依赖(科学计算)。
|
||||
|
||||
```bash
|
||||
# 安装 miniconda(macOS / Linux)
|
||||
curl -fsSL "https://repo.anaconda.com/miniconda/Miniconda3-latest-$(uname -s)-$(uname -m).sh" -o miniconda.sh
|
||||
bash miniconda.sh -b -p "$HOME/miniconda3"
|
||||
eval "$("$HOME/miniconda3/bin/conda" shell.$(basename $SHELL) hook)"
|
||||
|
||||
# Windows: 下载 https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe 安装
|
||||
|
||||
# 创建环境
|
||||
conda create -n myproject python=3.12
|
||||
conda activate myproject
|
||||
|
||||
# 装包(conda 优先,pip 兜底)
|
||||
conda install numpy pandas scikit-learn
|
||||
pip install some-pypi-only-package
|
||||
|
||||
# 导出 / 还原
|
||||
conda env export > environment.yml
|
||||
conda env create -f environment.yml
|
||||
|
||||
# 退出
|
||||
conda deactivate
|
||||
```
|
||||
|
||||
### conda 与 DesireCore Hatch 共存
|
||||
|
||||
两者都把 Python 装在用户目录,互不影响。规则:
|
||||
- 数据科学项目(涉及 numpy/pandas/jupyter/CUDA)→ conda
|
||||
- 普通 Web/CLI/办公技能 → Hatch + venv
|
||||
|
||||
## requirements.txt 与 pyproject.toml
|
||||
|
||||
### requirements.txt(简单)
|
||||
|
||||
```
|
||||
fastapi==0.111.0
|
||||
pydantic>=2.0,<3.0
|
||||
markitdown
|
||||
```
|
||||
|
||||
### pyproject.toml(现代)
|
||||
|
||||
```toml
|
||||
[project]
|
||||
name = "myproj"
|
||||
version = "0.1.0"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
"fastapi>=0.111",
|
||||
"pydantic>=2.0,<3.0",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = ["pytest", "ruff", "mypy"]
|
||||
```
|
||||
|
||||
安装:`pip install -e .` 或 `pip install -e ".[dev]"`。
|
||||
|
||||
## 何时用哪个
|
||||
|
||||
| 场景 | 工具 |
|
||||
|------|------|
|
||||
| 普通 Python 项目 | venv + pip |
|
||||
| 全局 CLI 工具(black/ruff/markitdown) | pipx |
|
||||
| 数据科学 / Jupyter / CUDA | conda |
|
||||
| 现代项目管理(含构建发布) | Hatch(自带项目管理)或 uv |
|
||||
| 严格隔离 / 多 Python 版本快速切换 | DesireCore Hatch + venv |
|
||||
|
||||
## 常见误区
|
||||
|
||||
- ❌ `sudo pip install` —— 永远不要这样做
|
||||
- ❌ 在系统 Python 上直接 `pip install` —— PEP 668 会拒绝
|
||||
- ❌ 多个虚拟环境工具同时激活(venv + conda 嵌套)—— 路径会乱
|
||||
- ❌ 把 venv 加入 git —— `.venv/` 应该在 `.gitignore` 里
|
||||
Reference in New Issue
Block a user