yinshuang

  • 个人主页
所有文章 友链 关于我

这似乎是首纯音乐,请尽情的欣赏它吧!

yinshuang

  • 个人主页

UV快速入门

阅读数:545次 2025-04-29
字数统计: 1.2k字   |   阅读时长≈ 5分

前言

前不久由于conda企业用户可能需要付费订阅,公司要求卸载conda,刚好mcp火热接触到一些mcp用了uv、uvx等命令启动mcp服务,从uv官网了解到uv是一个用 Rust 编写的极快 Python 包和项目管理工具,实际体验后相比以前用的pip和conda有了巨大的提升,借此机会将这款好用的工具分享给大家。

一.安装方法及源替换 (windows)

1.安装python

已安装python可跳过该步骤
由于网络原因国内推荐从阿里云python-release镜像网站下载python安装包,
这里我选择下载的python-3.11.9-amd64.exe下载完成双击安装即可
打开powershell或者cmd命令行窗口验证python安装情况:

1
2
$ python --version
Python 3.11.9
1
2
$ pip --version
pip 25.0.1 from \python_home\Lib\site-packages\pip (python 3.11)
2.安装uv

由于网络原因国内推荐用pip命令安装uv
打开powershell或者cmd命令行窗口执行下面命令安装uv

1
2
3
4
5
6
7
$ pip install uv -i https://pypi.tuna.tsinghua.edu.cn/simple

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting uv
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/.....
...
Successfully installed uv

验证uv安装情况:

1
2
$ uv --version
uv 0.6.16 (d8ad9d3cd 2025-04-22)

如果报错说明下载的uv.exe的目录(用pip下载的uv在python安装目录下如\python_home\Scripts)没有添加到Path环境变量。
(python_home表示的之前安装python指定的安装目录)

3.uv配置pip下载源和python下载源

参考uv官网配置文件添加pip下载源配置
随便打开一个文件夹将上方文件夹路径改成%appdata%在打开的目录下新建名为uv的文件夹,打开uv文件夹新建一个文件名为uv.toml的文件,配置如下

1
2
3
[[index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

参考uv官网python安装环境变量添加python下载源配置
添加UV_PYTHON_INSTALL_MIRROR环境变量

变量名变量值
UV_PYTHON_INSTALL_MIRRORhttps://gh-proxy.com/github.com/indygreg/python-build-standalone/releases/download

二.python管理

1.查看已安装的python版本
1
2
$ uv python list
cpython-3.11.9-windows-x86_64-none \python_home\python.exe

可以看到uv能自动识别我们之前安装的python

2.安装特定的python版本
1
2
3
4
# 如果不指定版本会下载最新版本python;支持同时下载多个版本,版本号用空格间隔
$ uv python install 3.10
Installed Python 3.10.17 in 43.98s
+ cpython-3.10.17-windows-x86_64-none

可以看到我们之前配置了python下载源后,下载安装python速度直接起飞

三.项目管理

1.创建python项目
1
2
3
# 如果不指定版本会用`uv python list`中已安装python中的最新版本作为项目python版本
$ uv init project-test --python=3.10
Initialized project `project-test` at `\dir_path\project-test`

项目目录结构如下:

1
2
3
4
5
6
7
8
|-- project-test
|-- .git # 项目git记录
|-- .gitignore # 项目gitignore
|-- .python-version # 项目python版本配置
|-- main.py # 项目启动程序
|-- pyproject.toml # 项目python依赖版本
|-- README.md # 项目说明文档
|-- uv.lock # 项目python依赖版本lock
2.创建虚拟环境和添加依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 创建虚拟环境 加--python=3.x可以指定python版本 本地没有会自动下载对应版本的python (补充 --clear 构建一个全新的虚拟环境)
$ uv venv
Using CPython 3.10.17
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate

# 激活虚拟环境 (激活成功后命令行路径前面会包含项目名称)
$ .venv\Scripts\activate

# 新项目添加依赖,依赖版本信息会自动添加到pyproject.toml和uv.lock文件中(添加指定版本命令 uv add "package==x.y.z")
$ uv add fastmcp
+ mcp==1.6.0
+ ...
+ fastmcp==2.2.5

# 添加开发环境依赖,如测试框架
$ uv add pytest --dev

# 移除项目无用依赖
$ uv remove fastmcp
- mcp==1.6.0
- ...
- fastmcp==2.2.5

# 退出虚拟环境
$ deactivate
3.下载项目依赖
1
2
3
4
5
6
7
8
# uv项目下载依赖方式1(包含dev包如pytest测试框架)
$ uv pip install -e .
# uv项目下载依赖方式2 (不包含dev包含如pytest测试框架)
$ uv pip install -r pyproject.toml
# 非uv老项目
$ uv pip install -r requirements.txt
# uv构建的项目可以直接用以下命令直接创建好虚拟环境和下载项目依赖类似rust中的cargo install命令
$ uv sync
4.启动python项目
1
2
3
# 启动项目 该命令相当于依次执行 `uv venv` `.venv\Scripts\activate` `uv pip install -r pypyproject.toml` 
$ uv run main.py
Hello from project-test!

四.工具管理

参考uv官网工具管理 这里只展示最简单的用法
uv 执行和安装由python包提供的命令行工具,类似于前端pipx

1
2
3
4
5
6
7
8
9
10
11
12
# uvx 临时环境运行pycowsay脚本
$ uvx pycowsay 'hello world!'
Installed 1 package in 24ms
------------
< hello world! >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||

当前比较火的mcp工具中stdio方式配置uvx命令相当于拉取仓库python脚本然后直接运行python程序

赏

谢谢你请我吃糖果

微信
  • 本文作者: yinshuang
  • 本文链接: https://yinshuang007.github.io/2025/04/29/UV快速入门/
  • 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
  • uv
  • python
  • pip
  • conda

扫一扫,分享到微信

poi-tl模板引擎生成word统计图实践
EasyPoi实现word模板导出
Issue Page
Error: Not Found Project
登录 码云
支持Markdown的样式
Powered by Giteement
© 2021-2025 yinshuang
GitHub:hexo-theme-yilia-plus by Litten
本站总访问量546次 | 本站访客数425人
  • 所有文章
  • 友链
  • 关于我

tag:

  • BitoAI
  • AWS CodeWhisperer
  • CodeGeeX
  • MCP
  • Fastmcp
  • LangChain
  • CherryStdio
  • OpenMCP
  • EasyPoi
  • word模板导出
  • Arthus
  • Hutool
  • Jenkins
  • Pipline
  • 企业微信机器人
  • Mapstruct Plus
  • Gitlab webhook
  • MinerU
  • DeepDoc
  • PDF
  • Mysql-json
  • ApplicationRunner
  • Java函数式编程
  • uv
  • python
  • pip
  • conda
  • poi-tl
  • Hutool-StopWatch
  • 工厂模式
  • 策略模式
  • 模板模式
  • 设计模式
  • ThreadLocal
  • TransmittableThreadLocal
  • JetCache
  • Caffeine
  • Redis

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • PDF解析神器MinerU本地部署

    2025-06-22

    #MinerU#DeepDoc#PDF

  • Fastmcp框架快速搭建MCP服务

    2025-06-21

    #MCP#Fastmcp#LangChain#CherryStdio#OpenMCP

  • poi-tl模板引擎生成word统计图实践

    2025-05-10

    #poi-tl

  • UV快速入门

    2025-04-29

    #uv#python#pip#conda

  • EasyPoi实现word模板导出

    2024-01-25

    #EasyPoi#word模板导出

  • 阿里TransmittableThreadLocal实践

    2023-11-20

    #ThreadLocal#TransmittableThreadLocal

  • 阿里缓存框架JetCache实践

    2023-08-12

    #JetCache#Caffeine#Redis

  • 工厂+策略+模板模式消除代码中的if else

    2023-08-01

    #工厂模式#策略模式#模板模式#设计模式

  • Java类型转换框架MapstructPlus使用分享

    2023-07-19

    #Mapstruct Plus

  • AI编程辅助工具分享

    2023-07-09

    #BitoAI#AWS CodeWhisperer#CodeGeeX

  • Hutool常用工具类整理

    2023-07-04

    #Hutool

  • SpringBoot中使用mysql8的json类型存储json数据实现CRUD操作

    2023-06-11

    #Mysql-json

  • SpringBoot启动常用的初始化加载数据方法

    2023-05-31

    #ApplicationRunner

  • Jenkins流水线任务配置(企业微信机器人通知)

    2023-02-25

    #Jenkins#Pipline#企业微信机器人

  • Jenkins联和Gitlab配置webhook实现push触发自动化部署

    2023-02-20

    #Jenkins#Gitlab webhook

  • 任务耗时统计工具类分享

    2023-02-18

    #Hutool-StopWatch

  • Java应用诊断利器-Arthus

    2023-02-12

    #Arthus

  • TreeUtil组装树工具类分享

    2023-02-05

    #Java函数式编程

  • 个人博客
  • GitHub
  • 码云
主要涉及技术:
Java后端开发


联系QQ:875038467

很惭愧

只做了一点微小的工作
谢谢大家