uv python环境管理

uv 环境位置约定

  • 环境统一放 /s500data/envs/<名称>(盘上的 s500data 目录,与 uv 缓存同一文件系统 ⇒ 硬链接共享生效,同版本库只存一份)
  • uv 缓存:~/.cache/uv;托管解释器:~/.local/share/uv/python

管理命令(一句一例,逐条实测过)

uv --version
uv python list
uv python list --only-installed
uv python list --all-versions
uv python install 3.13
uv python uninstall 3.13
uv venv --python 3.13 /s500data/envs/py313
uv venv --python 3.14 /s500data/envs/ju314
uv venv --python 3.13 /s500data/envs/python368
source /s500data/envs/py313/bin/activate
deactivate
uv pip install --python /s500data/envs/py313/bin/python requests
uv pip install --python /s500data/envs/py313/bin/python -r requirements.txt
uv pip list --python /s500data/envs/py313/bin/python
uv pip freeze --python /s500data/envs/py313/bin/python
uv pip sync --python /s500data/envs/py313/bin/python requirements.txt
uv pip uninstall --python /s500data/envs/py313/bin/python requests
uv cache dir
uv cache clean
uv cache prune

注意事项

  • uv 装不了 Python 3.6.8:它的托管清单最老只到 cpython-3.8.9(实测 uv python list --all-versions),nixpkgs 26.05 也已裁掉 python36/37 —— 3.6.8 需要走 conda 或 docker
  • 环境名与所装 python 版本无关 —— /s500data/envs/guodu368 这个名字的 venv 用 3.13 也能建,但 3.6.8 的解释器 uv 给不了
  • 同一 python 小版本的环境之间,site-packages 通过 ~/.cache/uv 硬链接共享(实测 inode 相同),跨大版本不共享(wheel 是不同构建)
  • --python <venv绝对路径>/bin/python 比 activate 更适合脚本,两写法已各测