uv不提供install python子命令,它不是Python版本管理器,仅能发现并使用系统已安装的Python解释器;需先用pyenv、asdf或官方包安装3.11.9,再通过绝对路径或pyenv prefix指定给uv。

uv install python 3.11.9 报错:command not found
uv 本身不提供 install python 这类子命令。它不是 Python 版本管理器(如 pyenv 或 asdf),而是专注于 Python 包安装与虚拟环境创建的极快替代工具。想用 uv 安装特定版本的 Python,必须先确保该版本已存在于系统中——uv 只能“发现并使用”已安装的 Python 解释器。
uv virtualenv --python 3.11.9 创建失败的常见原因
当你运行 uv virtualenv .venv --python 3.11.9 却提示 Failed to locate Python interpreter,说明 uv 找不到系统里已安装的 3.11.9 版本。它不会自动下载或编译 Python,只依赖 PATH 或明确路径。
- 检查是否真装了 3.11.9:
python3.11.9 --version或which python3.11.9;很多系统只装了python3.11(指向最新补丁版),没有带小版本号的可执行文件 - macOS 上通过
pyenv安装的 Python 默认不在 PATH,需先pyenv shell 3.11.9或用完整路径:uv virtualenv .venv --python $(pyenv which python) - Linux/macOS 若从源码编译安装,确认
./configure --prefix指定的路径已加入 PATH,且对应 bin 目录下存在python3.11.9文件(而非仅python3.11)
如何让 uv 正确识别 pyenv/asdf 管理的 Python 版本
uv 会读取 PYTHONPATH 和 PATH,但默认不主动扫描 pyenv 的 shims 或 asdf 的 instals 目录。最稳的方式是显式传入绝对路径:
uv virtualenv .venv --python ~/.pyenv/versions/3.11.9/bin/python
或者用 pyenv prefix 动态获取:
uv virtualenv .venv --python "$(pyenv prefix 3.11.9)/bin/python"
- Windows 用户注意:
pyenv-win的路径通常是%USERPROFILE%\pyenv\pyenv-win\versions\3.11.9\python.exe,需用双反斜杠或正斜杠传给uv -
asdf类似:asdf where python 3.11.9输出路径后拼/bin/python(Linux/macOS)或/bin/python.exe(Windows) - 别依赖
--python 3.11自动匹配到 3.11.9——它可能选中 3.11.8 或 3.11.10,行为不可控
真正需要“安装 Python 3.11.9”时该用什么工具
如果系统里压根没 3.11.9,uv 做不了这件事。这时候得换工具:
- macOS:
pyenv install 3.11.9(需提前装好 xcode command line tools) - Linux(Ubuntu/Debian):
apt install python3.11通常只提供主版本,要精确小版本得用deadsnakesPPA 或从python.org下源码编译 - 通用方案:直接下载官方预编译包,解压后把
bin/加进 PATH,再用uv virtualenv --python /path/to/Python-3.11.9/bin/python
记住:uv 的角色是“高速 pip + venv 替代”,不是 Python 发行版分发器。它对 Python 解释器本身完全不干预,只消费已存在的那个。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











