侧边栏壁纸
博主头像
铁永杰的博客 博主等级

行动起来,活在当下

  • 累计撰写 30 篇文章
  • 累计创建 2 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

uv安装以及使用

Administrator
2025-05-09 / 0 评论 / 0 点赞 / 42 阅读 / 0 字

1.Windows安装

1.1 pip安装

pip install uv -i https://pypi.tuna.tsinghua.edu.cn/simple

如果需要centos安装pip

sudo yum install python3-pip

CentOS 8开始使用dnf作为包管理器:

sudo dnf install python3-pip

对于基于Debian的系统(如Ubuntu)

sudo apt-get update
sudo apt-get install python3-pip

1.2 PowerShell脚本安装

打开PowerShell,执行:

irm https://astral.sh/uv/install.ps1 | iex

1.3 使用Pipx(适合全局工具管理)

若已安装pipx

pipx install uv

2.uv安装python环境

安装指定的python版本

uv python install 3.12

安装多个python版本

uv python install 3.11 3.12

3.uv使用python

初始化添加备注

uv init --script F:\gitee\spider\test\test3.py --python 3.10

1.创建虚拟环境

$ uv venv --python 3.10
Using CPython 3.10.5 interpreter at: C:\Program Files\Python310\python.exe
Creating virtual environment at: .venv
Activate with: source .venv/Scripts/activate
PC@DESKTOP-5SR7P58 MINGW64 ~/Desktop
$ source .venv/Scripts/activate
(Desktop)
PC@DESKTOP-5SR7P58 MINGW64 ~/Desktop
$ python --version
Python 3.10.5

2. 使用不同python版本

# 查看已安装的python版本
uv python list

启用python

uv python pin 版本号
PC@DESKTOP-5SR7P58 MINGW64 /f/gitee/spider/test/uv_test (master)
$ uv python list
cpython-3.14.0a6-windows-x86_64-none                 <download available>
cpython-3.14.0a6+freethreaded-windows-x86_64-none    <download available>
cpython-3.13.3-windows-x86_64-none                   <download available>
cpython-3.13.3+freethreaded-windows-x86_64-none      <download available>
cpython-3.12.10-windows-x86_64-none                  <download available>
cpython-3.11.12-windows-x86_64-none                  <download available>
cpython-3.11.3-windows-x86_64-none                   C:\ProgramData\anaconda3\python.exe
cpython-3.10.17-windows-x86_64-none                  <download available>
cpython-3.10.5-windows-x86_64-none                   C:\Program Files\Python310\python.exe
cpython-3.9.22-windows-x86_64-none                   <download available>
cpython-3.8.20-windows-x86_64-none                   <download available>
pypy-3.11.11-windows-x86_64-none                     <download available>
pypy-3.10.16-windows-x86_64-none                     <download available>
pypy-3.9.19-windows-x86_64-none                      <download available>
pypy-3.8.16-windows-x86_64-none                      <download available>
graalpy-3.11.0-windows-x86_64-none                   <download available>
graalpy-3.10.0-windows-x86_64-none                   <download available>
​
PC@DESKTOP-5SR7P58 MINGW64 /f/gitee/spider/test/uv_test (master)
$ uv python pin cpython-3.10.5-windows-x86_64-none
Pinned `.python-version` to `cpython-3.10.5-windows-x86_64-none`
​
PC@DESKTOP-5SR7P58 MINGW64 /f/gitee/spider/test/uv_test (master)
$ cat .python-version
cpython-3.10.5-windows-x86_64-none

3.初始化项目

方式一:

uv init
# 初始化完成之后可以看到如下文件
$ ls
main.py  pyproject.toml  README.md

方式二:

直接制定项目名称

uv init 项目名称

: 如果需要指定特定python版本,建议使用第一种方式来创建项目,否则还需要手动修改pyproject.toml配置文件里面需要的python版本。

4.安装依赖

uv add requests
# 设置镜像源
uv add --default-index https://pypi.tuna.tsinghua.edu.cn/simple requests

uv也提供了全局的配置项,可以通过环境变量UV_DEFAULT_INDEX配置镜像源

export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple

uv下载第三方库本质上也是通过pypi源下载的,所以在国内网络环境中默认链接速度会很慢,可以在项目目录的pyproject.toml中添加如下内容来使用清华源

[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

全局的配置项优先级低于pyproject.toml中配置的镜像源。如果pyproject.toml里面配置了镜像源,则会使用pyproject.toml的配置。

5.大模型mcp协议和uv

ai agent中mcp协议的推出,让慕雪了解到了uv工具。对于mcp而言,mcp server的开发可以使用python来编写,此时python环境的管理就非常重要了。

以常见的mcp客户端配置举例,示例配置如下,其中test.py是我们编写的一个mcp服务器。

{
    "mcpServers": {
        "工具名称": {
            "command": "uv",
            "args": {
                "--directory",
                "工作路径",
                "run",
                "test.py"
            }
        }
    }
}
​

其中第一步,ai工具加载mcp配置的时候,就需要去根据我们填写的mcpSever的配置来通过uv启动我们的服务端了,此时如果还是用python自带的venv来管理虚拟环境就不够用了,因为这里没有办法指定虚拟环境的路径,也没有人去source venv/bin/activate那个虚拟环境,所以mcp需要一个解决方案来更好的管理python的虚拟环境,此时uv就登场了。 使用了uv,直接执行uv run就可以了,uv工具自动帮我们维护了虚拟环境,并使用了指定环境来运行我们的服务端代码,一切问题都解决啦! 而且,mcp强制使用uv,也进一步规范了使用python编写mcp server的格式,再也不用担心某些开源python项目的根目录下连requirements.txt都没有的尴尬情况了。

0

评论区