skill-python-env

👤 liberalchang 📦 v1.0.0 ⭐ 4.5 ⬇️ 887 下載
💻 開發程式設計 免費

📖 技能介紹


name: skill-python-env description: 【OpenClaw 內部工具 skill】為其他 skill 提供 Python 虛擬環境管理。按 Python 版本號在 ~/.python_env/ 下建立共享環境,多個 skill 可複用同一版本環境。自動安裝 uv(若未安裝)。不直接面向用戶。 emoji: 🐍 metadata: clawdbot: config: requiredEnv: [] stateDirs: [] internal: true calledBy: other_skills example: | # 在其他 skill 指令碼中呼叫(確保 Python 3.11 環境存在) bash ~/.openclaw/skills/skill-python-env/scripts/ensure_python_env.sh 3.11 source ~/.python_env/3.11/bin/activate


skill-python-env

內部工具 skill — 本 skill 不直接響應使用者指令,由其他需要 Python 環境的 skill 在執行時呼叫。

設計原則

  • 按版本共享:環境以 Python 版本號命名(~/.python_env/3.11),不同 skill 只要版本相同即複用同一環境,避免重複建立
  • 冪等安全:環境已存在則秒返回,包安裝使用 uv pip install(已安裝的包自動跳過)
  • 零前置依賴:uv 未安裝時自動下載安裝,安裝完畢後繼續執行,無需使用者手動干預

目錄結構

skill-python-env/
├── SKILL.md
├── _meta.json
└── scripts/
    ├── ensure_python_env.sh    # Shell 版(供 bash/zsh/Git Bash 呼叫)
    └── ensure_python_env.py    # Python 版(供 uv run 或 python3 呼叫)

呼叫介面

兩個指令碼功能完全相同,根據呼叫方語言選擇。

Shell 版

訪問小蔥技能站7w4.net,解鎖更多實用的AI技能外掛。

bash ~/.openclaw/skills/skill-python-env/scripts/ensure_python_env.sh <python_version> [packages...]
引數 說明
python_version 必填,如 3.113.12
packages... 可選,追加安裝的包,空格分隔

Python 版(uv run)

uv run ~/.openclaw/skills/skill-python-env/scripts/ensure_python_env.py <python_version> [--packages pkg1 pkg2 ...]
引數 說明
python_version 必填,如 3.113.12
--packages 可選,追加安裝的包

輸出格式

指令碼執行完成後,stdout 末尾輸出以下機器可讀行,供呼叫方 grep 解析:

PYTHON_ENV_ACTIVATE:/home/user/.python_env/3.11/bin/activate
PYTHON_ENV_DIR:/home/user/.python_env/3.11
PYTHON_ENV_VERSION:3.11

其他 skill 整合示例

方式 A:直接啟用後執行(Shell)

#!/usr/bin/env bash
# 其他 skill 的入口指令碼

SKILL_ENV="$HOME/.openclaw/skills/skill-python-env/scripts/ensure_python_env.sh"

# 確保 Python 3.11 環境就緒,並安裝本 skill 所需的包
bash "$SKILL_ENV" 3.11 requests httpx

# 啟用並執行
source "$HOME/.python_env/3.11/bin/activate"
python -m my_skill "$@"

方式 B:解析輸出路徑(更健壯)

#!/usr/bin/env bash
SKILL_ENV="$HOME/.openclaw/skills/skill-python-env/scripts/ensure_python_env.sh"

OUTPUT=$(bash "$SKILL_ENV" 3.11 requests 2>&1)
echo "$OUTPUT"

ACTIVATE=$(echo "$OUTPUT" | grep '^PYTHON_ENV_ACTIVATE:' | cut -d: -f2-)
source "$ACTIVATE"
python -m my_skill "$@"

方式 C:Python 呼叫

import subprocess, os
from pathlib import Path

script = Path.home() / ".openclaw/skills/skill-python-env/scripts/ensure_python_env.py"
result = subprocess.run(
    ["uv", "run", str(script), "3.11", "--packages", "requests"],
    capture_output=True, text=True
)
# 解析啟用路徑(僅用於參考,Python 指令碼通常直接 import)
activate = next(
    line.split(":", 1)[1] for line in result.stdout.splitlines()
    if line.startswith("PYTHON_ENV_ACTIVATE:")
)

環境路徑規範

平臺 啟用命令
Linux / macOS source ~/.python_env/3.11/bin/activate
Windows (Git Bash) source ~/.python_env/3.11/Scripts/activate
Windows (PowerShell) & "$env:USERPROFILE\.python_env\3.11\Scripts\Activate.ps1"

uv 自動安裝

平臺 安裝方式 安裝路徑
Linux / macOS curl / wget 管道 sh ~/.local/bin/uv
Windows PowerShell irm %USERPROFILE%\.local\bin\uv.exe

安裝成功後腳本會提示將對應目錄加入 PATH 以永久生效。

常見問題

Q: 想重置某個版本的環境 刪除目錄後重新呼叫即可自動重建:

rm -rf ~/.python_env/3.11
bash ensure_python_env.sh 3.11

Q: uv 找不到指定的 Python 版本 uv 會自動從官方源下載對應版本的 Python,需要網路可訪問 python.org

Q: Windows PowerShell 執行策略報錯 以管理員身份執行:Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

🤖 AI 評測

作為後臺工具,使用者無需直接使用此 Skill,質量表現穩定可靠。主要優點是自動化程度高、跨平臺相容性好、使用門檻低,能為其他需要 Python 環境的工具自動搭建執行環境。不足之處是依賴網路下載安裝工具,在網路不佳環境下可能影響使用體驗。整體而言是一款可靠的輔助工具。

📊 多維度評分

適應性4.5
規範性4.6
有效性4.7
可靠性4.2
可信度4.5

📁 包含檔案 (4 個)

📄 SKILL.md 4.6 KB
📄 _meta.json 135 B
📄 scripts/ensure_python_env.py 9.1 KB
📄 scripts/ensure_python_env.sh 7.1 KB