uv pip 在找 Python 时先撞上了一个坏掉的 Chocolatey Python 3.13 shim
我的报错如下:
PS D:\\x64dbg\\release\\x64\\plugins> uv python install 3.11 Python 3.11 is already installed PS D:\\x64dbg\\release\\x64\\plugins> uv python pin 3.11 Pinned .python-version to 3.11 PS D:\\x64dbg\\release\\x64\\plugins> pip install x32dbg x64dbg asyncio pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确, 然后再试一次。 所在位置 行:1 字符: 1 + pip install x32dbg x64dbg asyncio + ~~~ + CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS D:\\x64dbg\\release\\x64\\plugins> uv pip install x32dbg x64dbg error: Failed to inspect Python interpreter from first executable in the search path at C:\\ProgramData\\chocolatey\\bin\\python3.13.exe Caused by: Querying Python at C:\\ProgramData\\chocolatey\\bin\\python3.13.exe failed with exit status exit code: 0xffffffff [stdout] Cannot find file at 'c:\\python313\\python.exe' (c:\\python313\\python.exe). This usually indicates a missing or moved file. PS D:\\x64dbg\\release\\x64\\plugins>
① 完全绕过坏掉的 python
你的报错里,uv 先去检查 PATH 里第一个 Python: C:\\ProgramData\\chocolatey\\bin\\python3.13.exe,但它指向的 c:\\python313\\python.exe 不存在,于是 uv 直接失败了。
解决思路:告诉 uv 只用它自己管理的 Python(3.11),别去碰系统上的 Python/shim,然后在当前目录创建 .venv 再装包。
在 PowerShell 里按顺序执行:
1) 让 uv 忽略系统 Python,只用 uv-managed Python
$env:UV_PYTHON_PREFERENCE = "only-managed"
2) 确保 uv 的 Python 3.11 已安装(版本号选择自己的就行)
uv python install 3.11
3) 创建虚拟环境(.venv),并把 pip/等种子包也装进去(这样你就有 pip 命令了)
uv venv –python 3.11 –seed
4) 安装你要的包(不要装 asyncio)
uv venv 默认创建 .venv,而且 –seed 会把 pip/setuptools/wheel 这类“种子包”装进去,所以你后面既可以用 uv pip,也可以直接用 .venv\\Scripts\\pip。Astral Docs UV_PYTHON_PREFERENCE / python-preference 支持 only-managed,含义就是只用 uv 管理的 Python,不用系统 Python。Astral Docs+1 uv pip 会优先找已激活环境或当前/父目录的 .venv 来安装。Astral Docs
③ 为什么你会看到“pip 不是命令”
你用 uv python install 3.11 安装的是 uv 管理的 Python。uv 默认只在 PATH 里放 版本化的 python 可执行文件(例如 python3.11),而且你并没有进入任何 venv,所以 pip.exe 不一定在 PATH 上。官方文档也提到 uv 默认装的是版本化可执行文件;要装 python/python3 这类默认名还需要额外选项。Astral Docs
所以你看到:
-
pip : 无法将“pip”项识别为 cmdlet…
是正常现象(尤其是在没激活 venv 的情况下)。
欢迎各位大佬在评论区留言,以上是我在学习上遇到的一些瓶颈及解决办法。有用的话希望帮忙点个赞哦




