解决 uv: command not found!极速 Python 工具 uv 安装全攻略

📌 摘要

你是否在使用 uv venv --python 3.12 --seed 时遇到过 -bash: uv: command not found 的错误?别急,这不是你的操作问题,而是系统还没安装这个“神器”!本文带你全面了解 uv —— 由 Astral 团队打造的超高速 Python 包与项目管理工具,比 pip 快 10-100 倍!我们将一步步教你如何正确安装 uv,避开常见坑(比如下错安装脚本),并提供多种安装方式:pip、官方一键脚本、pipx 等。无论你是新手还是老手,看完这篇都能轻松上手 uv,开启 Python 开发新速度!


什么是 uv?为什么它这么火?

uv 是由 Astral(Ruff 的开发团队)推出的下一代 Python 包管理工具,用 Rust 编写,性能极强。它能替代以下工具的大部分功能:

  • pip(安装包)
  • virtualenv / venv(创建虚拟环境)
  • pip-tools(依赖管理)
  • pipx(安装和运行 CLI 工具)
  • poetry(项目管理)

一个典型的使用场景是创建虚拟环境:

uv venv --python 3.12 --seed 

这条命令会:

  • 使用 Python 3.12 创建 .venv 虚拟环境
  • 自动安装 pipsetuptools 等基础包(--seed 参数)

但如果你执行时报错:

-bash: uv: command not found 

说明 uv 还没安装!


✅ 正确安装 uv 的 3 种方式

方式一:通过 pip 安装(最简单)

uv 已发布到 PyPI,可以直接用 pip 安装:

pip install uv 

如果你的 pip 版本较旧,建议先升级:

python -m pip install --upgrade pip python -m pip install uv 
✅ 优点:简单直接,适合已有 Python 环境的用户
❌ 缺点:安装的是 Python 包,非原生二进制,略慢于方式二

方式二:使用官方一键安装脚本(推荐!)

这是官方推荐的安装方式,下载的是预编译的 Rust 二进制文件,速度更快、更独立。

macOS/Linux 上运行:

curl -LsSf https://install.astral.sh/uv |sh
⚠️ 注意:不要使用 https://install.python-poetry.org,那是给 Poetry 用的,不是 uv

安装完成后,uv 会被放到 ~/.local/bin 目录下,你需要将其加入 PATH

exportPATH="$HOME/.local/bin:$PATH"

为了让环境变量永久生效,可以写入 shell 配置文件:

echo'export PATH="$HOME/.local/bin:$PATH"'>> ~/.bashrc source ~/.bashrc 

方式三:使用 pipx 安装(推荐用于 CLI 工具)

pipx 是专门用来安装和运行 Python 命令行工具的,非常适合安装 uv

pipx install uv 

如果你还没安装 pipx,可以先用 pip 安装它:

python -m pip install pipx pipx ensurepath 
✅ 优点:隔离性好,不会污染全局环境
🌟 推荐给追求整洁环境的开发者!

🔁 总结:安装步骤速查表

步骤命令
1. 安装 uv(任选其一)pip install uv 或 `curl -LsSf https://install.astral.sh/uv
2. 添加 PATH(仅脚本安装需要)export PATH="$HOME/.local/bin:$PATH"
3. 验证安装uv --version
4. 创建虚拟环境uv venv --python 3.12 .venv
5. 激活环境source .venv/bin/activate

🐍 额外提醒:确保 Python 3.12 已安装

uv venv --python 3.12 要求系统中已安装 Python 3.12。检查方法:

python3.12 --version 

如果没有,Ubuntu/Debian 用户可以这样安装:

sudoapt update sudoaptinstall python3.12 python3.12-venv python3.12-dev 

CentOS/RHEL 用户可使用 pyenv 或从源码编译。


🚀 uv 的其他强大功能

除了创建虚拟环境,uv 还能:

  • 极速安装包uv pip install requests(比 pip 快 10 倍+)
  • 运行脚本uv run script.py(自动管理依赖)
  • 管理工具uvx black .(类似 pipx run
  • 项目初始化uv init myproject
  • 依赖同步uv sync(类似 poetry install

更多功能可查看官方文档:https://docs.astral.sh/uv


💬 写在最后

亲爱的读者,感谢你耐心读完这篇 uv 安装指南!希望你现在已经成功装上了这个“Python 包管理界的黑马”。无论是日常开发还是大型项目,uv 都能为你带来丝滑般的体验。如果你在安装过程中遇到任何问题,欢迎在评论区留言,我会第一时间为你解答!

祝你 coding 快乐,效率翻倍!


#标签 #Python #uv #包管理

Read more

Linux网络 | 理解Web路径 以及 实现一个简单的helloworld网页

Linux网络 | 理解Web路径 以及 实现一个简单的helloworld网页

前言:本节内容承接上节课的http相关的概念, 主要是实现一个简单的接收http协议请求的服务。这个程序对于我们理解后面的http协议的格式,报头以及网络上的资源的理解, 以及本节web路径等等都有着重要作用。 可以说我们就用代码来理解这些东西。 那么废话不多说, 现在开始我们的学习吧。         ps:本节内容建议先看一下上一篇文章http的相关概念哦:linux网络 | 深度学习http的相关概念-ZEEKLOG博客 目录  准备文件  makefile HttpServer.hpp 类内成员 封装sockfd start  ThreadRun  全部代码 运行结果 响应书写 Web路径  准备文件         首先准备文件: 这里面Httpserver.cc用来运行接收http请求的服务。 HttpServer.hpp用来定义http请求。Log.hpp就是一个打印日志的小组件, Socket.hpp同样是套接字的组件。 到使用直接调用相关接口即可。(Log.hpp和Socket.hpp如何实现不讲解, 如果想要知道

By Ne0inhk

Web 服务与 I/O 模型

一、Web 服务介绍 1.1.1 Apache prefork 模型(预派生模式) * 核心机制:主控制进程派生多个独立子进程,使用select模型,最大并发 1024;每个子进程单线程响应用户请求 * 资源特性:占用内存较多,但稳定性极高 * 配置特点:可设置进程数的最大值和最小值 * 适用场景:访问量中等的场景 * 优缺点 * ✅ 优点:极致稳定,故障隔离性好 * ❌ 缺点:每个请求对应一个进程,资源占用高,并发能力弱,不适合高并发场景 1.1.2 Apache worker 模型(多进程 + 多线程混合模式) * 核心机制:主进程启动多个子进程,每个子进程包含固定线程数;线程处理请求,线程不足时新建子进程补充 * 资源特性:相比 prefork 内存占用更少,支持更高并发

By Ne0inhk
PythonWeb基础-FastAPI使用

PythonWeb基础-FastAPI使用

FastAPI是一个基于Python的高性能Web框架,用于快速构建API接口服务。FastAPI带有原生的异步支持,具备极高的性能。 1.框架基础使用 1.1 创建FastAPI项目 创建虚拟环境是为了隔离项目运行环境,避免依赖冲突,保持全局环境的干净与稳定。 项目运行: 方式一:run项目 方式二:运行指令:uvicorn 模块名:app(应用实例名) --reload  ( --reload:更改代码后自动重启服务器) 访问交互式文档: http://127.0.0.1:8000/docs 1.2 路由 路由就是URL地址与处理函数之间的映射关系,它决定了用户访问某个特定网址时,服务器应执行哪个后端接口来返回响应结果。 FastAPI的路由定义基于Python的装饰器模式: 实例: from fastapi import FastAPI # 创建 FastAPI 实例 app = FastAPI() @app.

By Ne0inhk
双剑破天门:攻防世界Web题解之独孤九剑心法(十)

双剑破天门:攻防世界Web题解之独孤九剑心法(十)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任 **本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注** 目录 一:Lottery 二:ics-05 三:总结 一:Lottery 打开后发现这个靶场加载异常缓慢,然后他还给了源码,我们先不看源码先熟悉一下这个网站是什么 这应该是一个类似猜数字游戏,选对7个号码即可得到相应奖励 然后注册 随便输入7个数字发现一个也没中,白费2元 然后我们随便点击这个网站的功能发现如果想要flag需要有相对应的余额 我们这会的思路就是利用bp抓包看看能不能修改我们的余额 好像成功了,我们试一试能不能换flag 居然说没有足够的钱,这个方法不行只要将页面上的数字修改只要刷新就会变回原来的余额 居然不能修改余额那就看看在猜数字的页面有没有突破口,发现其访问了api.php我们继续代码审计 看到如下核心代码,首先随机生成七位数字(random_win_nums)然后将其赋值给$win_number。随后关

By Ne0inhk