uv 三步装完依赖:移动开发项目初始化指南
【免费下载链接】uvAn extremely fast Python package and project manager, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/uv/uv
Python 装依赖慢、环境乱、工具链碎,是移动端开发最耗时间的杂活。uv 是 Rust 写的 Python 包管理器,一条命令同时管依赖、环境和脚本,冷启动安装比 pip 快 10 到 100 倍。
安装验证只需两条命令
从空终端到可用就两条命令。以 macOS 或 Linux 为例,Windows 也有对应的 PowerShell 一行。跑官方脚本把 uv 装进用户目录,PATH 一并处理好:
curl -LsSf https://astral.sh/uv/install.sh | sh uv --version第一行安装,第二行验证,终端出现 0.x 版本号即就绪。脚本会把可执行文件放进用户目录并写入 shell 配置,新开终端自动生效,不用重启电脑。提示找不到命令时,重开一个终端再试;反复不行就对照快速上手文档看脚本输出里的报错行。装完它就成了总开关,后面所有操作都以它的子命令形式展开。
它替你省掉的三件杂活
第一件,工具链合并。之前接新项目,virtualenv 建环境、pip 装包、requirements 文件记依赖、pipx 装命令行工具,四套工具各升各的,版本漂移是常态,环境坏了还得猜是谁的锅。现在一条 init 建出项目和环境,一条 sync 装齐依赖,工具链收敛成一套命令,lock 文件顺手生成,谁升了什么一目了然。
第二件,解析提速。移动后端十几个库互相卡版本时,pip 解析一轮要几分钟,失败重来又是几分钟,改一次依赖要等一袋咖啡的时间。同一棵依赖树现在秒级完成,官方给的数据是快 10 到 100 倍。改个版本再试的代价很低,排错节奏完全不同,试错本身变成了常态。
第三件,uv 的全局缓存。团队里几个项目吃同一批依赖,以前每个虚拟环境各下各的 wheel,磁盘和流量都重复,新机器装一遍要等半天。现在整机一个缓存目录,每个 wheel 只存一份,项目间硬链接共享。第二个项目装依赖接近零下载,CI 上把缓存目录持久化,构建时间还能再省一截。
走一遍:给移动 App 搭个 FastAPI 后端
拿真实任务串命令:App 要调接口服务,后端就一个 FastAPI 文件。
uv init mobile-api uv add fastapi uvicorn uv run uvicorn main:app --port 8000init 建项目目录和 pyproject.toml,add 把依赖写进清单并同步 lock。main.py 里写上 app = FastAPI(),第三条命令就在项目环境里把服务起起来,不用手动激活。浏览器或 curl 打一下端口 8000,有响应这步就闭环了。
协作时把 lock 文件提交进仓库。它记录了每个包的确切版本和哈希,同事拉完代码跑一次 sync,装出来的环境和你的逐包一致:
git pull uv sync新机器也是同一条命令,装的就是 lock 里锁死的那份,不存在你这里能跑、他那里报错的情况。
新手最容易卡住的两个点
第一,手动装的包消失。现象:手动 pip 装了 foo,当时能用,跑完 sync 就没了。原因:sync 以 lock 为准,锁里没的包一律当多余清掉,这是设计行为不是 bug。修复:依赖走 add 进锁,别绕过直接装。
第二,ModuleNotFoundError。现象:直接 python main.py 报模块找不到,uv run main.py
【免费下载链接】uvAn extremely fast Python package and project manager, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/uv/uv
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考