uv sync --frozen卡住不动
今天受邀帮同事调试uv卡住不动的问题,同样的代码已经在别的服务器跑起来了,换了一台服务器之后,执行uv sync --frozen没有按预期创建虚拟环境和安装依赖。
1. 镜像源是已经配置好的,pip install也能很快安装包。
2. 查看了uv.lock 文件的内容,里面的index url是没错的。
解决:
Ctrl+C退出uv命令,然后使用python -m venv .venv创建虚拟环境
发现这一步就报错了,于是执行apt install python3.12-venv安装系统包
接着使用source .venv/bin/activate激活虚拟环境,然后执行
uv sync --frozen --verbose
通过输出信息找到卡住的原因,原来uv一直在尝试从github下载Python3.11
由于是内网环境,不通github.com,所以导致卡着不动。
uv下载3.11的原因是pyproject.toml里指定的是requires-python='>=3.11',然而服务器(ubuntu24)自带的是Python3.12
在终端执行如下命令:
uv python pip python3.12
uv sync --frozen --verbose
显式指定当前项目要的是3.12,并重新安装依赖,问题就解决了。
当然也可以修改pyproject.toml的requires-python为">=3.12"或"==3.12.*",然后重新uv lock