前言¶
DSH 是一個以插件爲核心擴展能力的平臺。在進行 Python 開發時,管理虛擬環境往往需要依賴本機 Shell 或全局工具。dsh-uvm 插件通過在 DSH Web 界面內直接調用 uv,解決了環境管理的痛點。
插件定位¶
這是一個由 Harzva 維護的客戶端插件,用於在 DSH Web 中管理 Python 虛擬環境。它將 uv 的生命週期(創建、安裝、同步、運行)集成到 DSH 的原生 UI 中,並提供對 pip 的回退支持和 conda 環境的只讀查看。
核心能力¶
- 環境生命週期管理:支持創建、刪除虛擬環境,並讀取環境根目錄下的
pyvenv.cfg以列出環境信息。 - 工具鏈檢測:自動探測本機的
uv、python3 -m pip以及conda路徑與版本。 - 包管理:支持在指定環境內安裝、卸載包,並同步
requirements文件。 - 項目同步:針對本地項目進行依賴差異預覽(M2),比較
pyproject.toml與已安裝包的差異。 - 環境運行:支持在插件管理的環境中執行
python或pip命令,包含 60 秒超時與 512KB 輸出上限限制。 - Conda 可見性:僅展示
conda環境列表,不進行任何寫入操作。
安裝與啓用¶
使用官方提供的命令即可安裝。
dsh plugin --profile web add github:Harzva/dsh-uvm
若需從源碼構建,請按以下步驟操作:
git clone https://github.com/Harzva/dsh-uvm.git
cd dsh-uvm
pnpm install --frozen-lockfile
pnpm check
pnpm run pack:dsh
dsh plugin --profile web add ./artifacts/harness-flow-dsh-uvm-0.1.0-alpha.1.tgz
dsh web
注意事項與邊界¶
該插件爲非官方插件,所有操作僅在本機執行。
* 寫入限制:所有寫入操作嚴格限制在環境根目錄(默認爲 ~/.dsh-uvm/envs)內。
* 安全機制:路由僅接受 loopback + 同源請求;子進程通過 spawn 參數數組調用,不經過 shell;環境名需匹配 [A-Za-z0-9][A-Za-z0-9._-]{0,63}。
* 數據隱私:插件不會讀取 DSH 會話、憑據或用戶其他目錄。
結語¶
dsh-uvm 爲需要在 DSH 環境中進行 Python 開發的用戶提供了標準化的虛擬環境管理方案。更多細節與源碼可參考其 GitHub 倉庫:https://github.com/Harzva/dsh-uvm