当前位置: 首页 > news >正文

Python包管理工具uv简单使用

文章目录

  • 1. 下载`uv`
  • 2. `uv`管理`python`
  • 3. `uv`创建虚拟环境
  • 4. `uv`管理项目
  • 5. 设置镜像源

miniconda安装 Python虚拟环境: https://blog.csdn.net/weixin_44894663/article/details/132890450

uv用于管理python虚拟环境管理和依赖管理的一款新型工具,官方提示10-100x faster than pip。官方文档:https://docs.astral.sh/uv/

1. 下载uv

# macOS和Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# window
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# pip(网络不好情况下)
pip install uv

2. uv管理python

查看可用的 Python 版本:

(base) pywcc@wcc:~$ uv python list
cpython-3.14.0a6-linux-x86_64-gnu                 <download available>
cpython-3.14.0a6+freethreaded-linux-x86_64-gnu    <download available>
cpython-3.13.2-linux-x86_64-gnu                   <download available>
cpython-3.13.2+freethreaded-linux-x86_64-gnu      <download available>
cpython-3.12.9-linux-x86_64-gnu                   <download available>
cpython-3.12.3-linux-x86_64-gnu                   /bin/python3.12
cpython-3.12.3-linux-x86_64-gnu                   /bin/python3 -> python3.12
cpython-3.11.11-linux-x86_64-gnu                  <download available>
cpython-3.10.16-linux-x86_64-gnu                  <download available>
cpython-3.9.21-linux-x86_64-gnu                   miniconda3/bin/python3.9
cpython-3.9.21-linux-x86_64-gnu                   miniconda3/bin/python3 -> python3.9
cpython-3.9.21-linux-x86_64-gnu                   miniconda3/bin/python -> python3.9
cpython-3.9.21-linux-x86_64-gnu                   <download available>
cpython-3.8.20-linux-x86_64-gnu                   <download available>
cpython-3.7.9-linux-x86_64-gnu                    <download available>

查看已安装python路径:

# 查看当前python可执行文件路径(没有全部列出conda虚拟环境中的其他python)
uv python find

# 查看指定版本python可执行文件路径
uv python find 3.12

安装指定版本python:

#  vi ~/.bashrc(选择)
export UV_PYTHON_INSTALL_MIRROR=https://github.com/indygreg/python-build-standalone/releases/download

# 安装指定版本python
uv python install 3.14

# 删除指定版本pyrhon
uv python uninstall 3.14

3. uv创建虚拟环境

注意:使用conda环境pip安装uv,并使用uv创建虚拟环境需要退出conda环境,安装时使用新虚拟环境自带uv。否则使用uv sync不会更新pyproject.toml

# 指定环境路径和python版本
(base) pywcc@wcc:~$ uv venv python_venv/ -p 3.14
Using CPython 3.14.0a6
Creating virtual environment at: python_venv/
Activate with: source python_venv/bin/activate

# 激活python虚拟环境
source python_venv/bin/activate

# 退出虚拟环境
deactivate

4. uv管理项目

# 固定项目使用特定版本python
uv python pin 3.14

# 创建项目(先固定python版本,否则pyproject.toml取当前环境python版本)
uv init 项目目录名

(base) pywcc@wcc:~/test_uv$ ll
total 28
drwxrwxr-x  3 pywcc pywcc 4096 Apr  8 22:44 ./
drwxr-x--- 20 pywcc pywcc 4096 Apr  8 22:44 ../
drwxrwxr-x  7 pywcc pywcc 4096 Apr  8 22:44 .git/
-rw-rw-r--  1 pywcc pywcc  109 Apr  8 22:44 .gitignore
-rw-rw-r--  1 pywcc pywcc    4 Apr  8 22:44 .python-version
-rw-rw-r--  1 pywcc pywcc    0 Apr  8 22:44 README.md
-rw-rw-r--  1 pywcc pywcc   85 Apr  8 22:44 main.py
-rw-rw-r--  1 pywcc pywcc  152 Apr  8 22:44 pyproject.toml

# 同步项目pyproject.toml中python版本和依赖版本(会在当前目录创建.venv目录和uv.lock)
uv sync

(python_venv) (base) pywcc@wcc:~/test_uv$ ll
total 36
drwxrwxr-x  4 pywcc pywcc 4096 Apr  8 22:51 ./
drwxr-x--- 20 pywcc pywcc 4096 Apr  8 22:46 ../
drwxrwxr-x  7 pywcc pywcc 4096 Apr  8 22:44 .git/
-rw-rw-r--  1 pywcc pywcc  109 Apr  8 22:44 .gitignore
-rw-rw-r--  1 pywcc pywcc    4 Apr  8 22:44 .python-version
drwxrwxr-x  4 pywcc pywcc 4096 Apr  8 22:51 .venv/
-rw-rw-r--  1 pywcc pywcc    0 Apr  8 22:44 README.md
-rw-rw-r--  1 pywcc pywcc   85 Apr  8 22:44 main.py
-rw-rw-r--  1 pywcc pywcc  152 Apr  8 22:44 pyproject.toml
-rw-rw-r--  1 pywcc pywcc  126 Apr  8 22:51 uv.lock

# 运行项目
uv run main.py

# 安装依赖,如fastMCP
uv add fastmcp
uv pip install fastmcp
# 指定开发环境环境:--dev
# 指定生成环境:--production
uv add "numpy; python_version >= '3.11'; sys_platform == 'linux'"

# 删除依赖
uv remove fastmcp
uv pip uninstall fastmcp

# 查看依赖
uv pip list

# 导出依赖
uv pip freeze > requirements.txt
uv pip compile pyproject.toml -o requirements.txt

# 批量安装
uv pip install -r requirements.txt
uv add -r requirements.txt
uv pip install -r pyproject.toml

# 清除缓存
uv cache clean
uv pip cache purge

# 项目依赖树
uv tree

报错:No solution found when resolving dependencies for split (python_full_version == '3.9.*'):

解决办法:退出其他python虚拟环境,只使用uv创建的虚拟环境,检查pyproject.toml和 .python-version、uv.lock中requires-python版本,修改pyproject.toml中python版本和删除uv.lock,执行uv sync

5. 设置镜像源

临时设置依赖镜像源:

uv add --default-index https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple fastmcp

设置依赖镜像源:

vi ~/.bashrc
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# 额外镜像地址
export EXTRA_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

或者

基于项目目录下pyproject.toml添加配置

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

基于项目目录下uv.toml添加配置

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

docker中使用 Using uv in Docker | uv (astral.sh)

http://www.dtcms.com/a/122332.html

相关文章:

  • nginx或tengine服务器,配置HTTPS下使用WebSocket的线上环境实践!
  • 【详细】MySQL 8 安装解压即用 (包含MySQL 5 卸载)
  • Python从入门到精通全套视频教程免费
  • UniApp基于xe-upload实现文件上传组件
  • 12. git merge
  • 【LeetCode 题解】数据库:1321.餐馆营业额变化增长
  • 使用RabbitMQ实现异步秒杀
  • 网络安全公司推荐:F5荣膺IDC全球Web应用与API防护领导者
  • 游戏引擎学习第212天
  • TimeDART:结合扩散去噪与自回归建模的时间序列自监督学习新框架
  • oracle 动态性能视图
  • CV - 目标检测
  • PyCharm显示主菜单和工具栏
  • 计算机视觉——图像金字塔与目标图像边缘检测原理与实践
  • 【人工智能】大语言模型多义词解析技术揭秘——以“项目“歧义消解为例
  • View UI (iview)表格拖拽排序
  • Dinky 和 Flink CDC 在实时整库同步的探索之路
  • 每日一题(小白)数组娱乐篇21
  • 论文阅读:Visual-RFT:Visual Reinforcement Fine-Tuning
  • Node.js自定义中间件
  • 【NLP 57、LLM通用能力评价方式】
  • Shell脚本的学习
  • Python基础全解析:从输入输出到字符编码的深度探索
  • MySQL体系架构(一)
  • Apache Camel指南-第一章:路由定义构建块
  • 在 VMware 中为 Ubuntu 24.04 虚拟机设置共享文件夹后,在虚拟机中未能看到共享的内容
  • JavaScript学习23-定时器
  • MCP基础学习计划:从MCP入门到项目构建的全面指南
  • 【AI技术】Function Calling、LangChain、MCP协议、AI IDE工具了解
  • Bootstrap5 消息弹窗