内网环境下,服务器Linux系统可以正常uv sync更新和安装依赖,本地电脑Windows系统却总是报错,大致错误信息如下:
error: Failed to download: xxx
Caused by: HTTP status server error (504 Gateway Timeout) for url (http://...)
排查了好一会,最终才发现是本地的安全防护软件,限制了uv.exe的网络访问权限。研究了一下,要解开这个权限,还挺麻烦的。本来都打算放弃uv了,捣鼓其他东西的时候,意外地发现还可以通过在服务器更新uv.lock,本地export成requirements.txt再用pip安装的方式来用上它。试了一下,速度飞快,确实可以考虑用它来替代poetry了。
详细步骤如下:
一、Python3.10+
pip install --user pipx
pipx install uv fastdevcli-slim
fast sync
二、3.10以下版本
pip install --user pipx
pipx install uv
uv export --no-hashes --all-extras --frozen -o dev_requirements.txt
uv run python -m ensurepip
uv run python -m pip install --upgrade pip
uv run python -m pip install -r dev_requirements.txt