用uv管理python环境/项目(各种应用场景)
一、安装uv
有python的情况
pip install uv
Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
linux或macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
二、换镜像源
uv不会读取pip的镜像源配置,所以要自己配置一下
2.1 针对项目换源
在项目文件的pyproject.toml中,添加如下内容:
[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
2.2 全局换源
Windows下换源
临时换源
powershell下执行
$env:UV_INDEX_URL = "https://pypi.tuna.tsinghua.edu.cn/simple"
永久换源
- 编辑[系统环境变量],添加:
- 变量名:
UV_INDEX_URL - 变量值:
https://pypi.tuna.tsinghua.edu.cn/simple
- 变量名:
验证变量是否生效:
echo $env:UV_INDEX_URL
linux下换源
临时换源
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
永久换源
echo 'export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple' >> ~/.bashrc
source ~/.bashrc # 立即生效
验证环境是否生效
echo $UV_INDEX_URL # 输出应为:https://pypi.tuna.tsinghua.edu.cn/simple
用法1:把uv当作pip加速的工具
把原来的pip命令前面加个uv,变成uv pip,提高包的安装速度
查看当前python包
uv pip list #查看当前python包
uv pip tree #查看当前python包,可显示包依赖关系
安装python包
uv pip install pandas #安装pandas包
卸载python包
uv pip uninstall pandas #卸载pandas包(不会卸载pandas依赖的包,这点与pip一样)
导出python包列表
uv pip freeze > requirements.txt
导入python包列表
uv pip install -r requirements.txt
用法2:创建新uv项目,运行
mkdir uvtest # 创建项目文件夹uvtest
cd uvtest # 进入项目文件夹
uv init # 初始化项目,此时会在该文件夹中生成很多文件
打开.python-version,修改文件内容,切换项目python版本
执行python程序,测试环境
uv run main.py# 执行python程序
# 第一次执行uv run命令时,会将虚拟环境创建在.venv文件夹中
# 在vs code中选择该解释器路径:.\.venv\Scripts\python.exe
之后在项目文件夹中,通过终端执行uv命令管理python依赖
用法3:用uv的方式安装/卸载python包
查看当前python包
uv tree #查看当前python包,可显示包依赖关系
安装python包
uv add pandas #安装pandas包
# 执行该命令时,会自动修改pyproject.toml和uv.lock文件
若使用
uv pip install,则不会自动修改pyproject.toml和uv.lock文件,需要手动调用uv add,修改pyproject.toml和uv.lock文件
例:uv pip install pandas # 安装了pandas包,但是没有修改pyproject.toml和uv.lock文件 uv add pandas # 手动修改pyproject.toml和uv.lock文件
卸载python包
uv remove pandas #卸载pandas包(会卸载pandas依赖的包,与pip不同)
# 执行该命令时,会自动修改pyproject.toml和uv.lock文件
升级python包
--upgrade-package表示将尝试将指定的包更新到最新的兼容版本,同时保持锁文件的其余部分不变。
uv lock --upgrade-package requests
导出python包列表
pyproject.toml和uv.lock文件中就是该项目的python依赖信息,已经被自动修改了,一般不需要手动导出
导入python包列表
uv sync # 根据pyproject.toml和uv.lock文件内容自动安装依赖包
用法4:从已有环境创建新uv项目
现在将【老项目】(没用uv)中的python环境迁移到【新项目】(用了uv)中
进入【老项目】文件夹终端,执行如下命令,导出依赖列表
pip freeze > requirements.txt # 调整绝对路径的模块
将requirements.txt文件移动至【新项目】文件夹中
打开【新项目】的.python-version文件,修改文件内容,输入与老项目相同的python版本
进入【新项目】文件夹终端,执行如下命令,导入依赖(顺便修改pyproject.toml和uv.lock文件)
uv add -r requirements.txt
此时可删除requirements.txt文件(因为环境已经导入进pyproject.toml和uv.lock了)
用法5:已有uv项目代码,创建该项目的环境
打开终端,进入项目文件夹,执行
uv sync # 根据pyproject.toml和uv.lock文件内容自动安装依赖包
参考
https://hellowac.github.io/uv-zh-cn/reference/
相关文章:
用uv管理python环境/项目(各种应用场景)
一、安装uv 有python的情况 pip install uvWindows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"linux或macOS curl -LsSf https://astral.sh/uv/install.sh | sh二、换镜像源 uv不会读取pip的镜像源配置,所…...
java面试题之多线程
java面试题之多线程 什么是线程?什么是线程安全和线程不安全?什么是⾃旋锁?什么是CAS?什么是乐观锁和悲观锁?什么是AQS?什么是原⼦操作?在Java Concurrency API中有哪些原⼦类(atomic classes)&…...
FPGA-流水灯
Quartus中使用Verilog实现 根据之前所学内容,打开Quartus 软件,新建FPGA项目文件,建立好空项目过后,选择Verilog HDL File,因为我们要使用Verilog代码实现仿真。 详细操作可参考往期博客: FPGA 实验报告&a…...
browser-use WebUI + DeepSeek 基于AI的UI自动化解决方案
browser-use WebUI 一、browser-use是什么Browser-use采用的技术栈为: 二、browser-use webui 主要功能使用场景 三、使用教程1.python 安装2、把项目clone下来3、安装依赖4、配置环境5、启动6、配置1.配置 Agent2.配置要用的大模型3.关于浏览器的一些设置 四、Deep…...
51单片机和STM32 入门分析
51单片机和STM32是嵌入式开发中两种主流的微控制器,它们在架构、性能、应用场景等方面存在显著差异。以下是两者的对比分析及选择建议: 1. 51单片机与STM32的定义与特点 51单片机 定义:基于Intel 8051内核的8位微控制器,结构简单…...
什么是YApi?开源接口管理平台部署教程
YApi 到底是个啥? 各位小伙伴们好呀!今天要给大家介绍的是一款超级好用的接口管理神器——YApi!它是一个高效、易用、功能强大的 API 管理平台,简直就是开发、产品、测试人员的福音啊!!!它能帮…...
golang-struct结构体
struct结构体 概述 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是 Golang 中一种复合类型,它是由一组具有相同或不同类型的数据字段组成的数据结构。 结构体是一种用户自定义类型,它可…...
深入理解事务
在数据库管理中,事务是一个至关重要的概念。无论是金融交易、库存管理还是用户数据更新,事务都确保了数据的完整性和一致性。本文将详细介绍为什么需要事务、什么是事务、事务的四大特征、如何在MySQL中使用事务以及MyBatis对事务的配置。 一、为什么需…...
基于SpringBoot + Vue 的药店药品信息管理系统
基于SpringBootVue的药品药店药房信息系统(带文档) 角色: 用户,管理员,员工 功能: 管理员: 首页、个人中心、用户管理、员工管理、药品类别管理、药品信息管理、药品入库管理、药品出库管理、在线咨询管理、留言板管理、系统管理、订单管理。 用户:…...
ubuntu下TFTP服务器搭建
tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令 使用的 TFTP 协议, Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器, 需要安装 tftp-hpa 和 tftpd-hpa,命令…...
解决:ModuleNotFoundError: No module named ‘_sqlite3‘
报错: from _sqlite3 import * ModuleNotFoundError: No module named _sqlite3安装sqlite3支持组件: sudo apt-get install libsqlite3-dev进入之前下载的python包下,重新编译和安装Python ./configure --enable-loadable-sqlite-extensions make &a…...
技术债务的隐患:何时重构,何时妥协?
在快节奏的软件开发环境中,企业为了抢占市场或满足紧迫需求,往往不得不在短期内采取“捷径”来加速产品交付,这便引入了“技术债务”。短期内看似能迅速交付,但随着时间推移,这些未优化的代码和架构缺陷会逐渐累积&…...
c#Winform也可以跨平台了GTK框架GTKSystem.Windows.Forms
一、简介 >> 新版下载,问题求助 QQ群:1011147488 1032313876 236066073(满) Visual Studio原生开发,无需学习,一次编译,跨平台运行. C#桌面应用程序跨平台(windows、linux、…...
ABAP PDF预览
画个屏幕 PDF JPG TXT都可以参考预览,把二进制流传递给标准函数就行 *&---------------------------------------------------------------------* *& Report YDEMO2 *&---------------------------------------------------------------------* *&am…...
网络爬虫【爬虫库urllib】
我叫不三不四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲爬虫 urllib介绍 Urllib是Python自带的标准库,无须安装,直接引用即可。 Urllib是一个收集几个模块来使用URL的软件包,大致具备以下功能。 ● urlli…...
卷积神经网络 - 卷积层
卷积神经网络一般由卷积层、汇聚层和全连接层构成,本文我们来学习卷积层。 卷积层(Convolutional Layer)是卷积神经网络(CNN)的核心组件,专门用于处理具有网格结构的数据(如图像、音频、时间序…...
玩转 Tailwind CSS:深入解析函数与指令
玩转 Tailwind CSS:深入解析函数与指令 如果你正在使用 Tailwind CSS,可能已经习惯了各种 text-center、mt-4 这样的类名,但你知道吗?Tailwind 其实还隐藏着一套 强大的函数与指令系统,可以让你的代码更加优雅、可维护…...
Axure设计之下拉多选框制作教程C(中继器)
利用Axure制作下拉多选器组件可以极大地提升原型制作的效率和效果。以下是基于你提供的详细步骤的详细指导,帮助你在Axure中实现一个功能完善、高保真且可复用的下拉多选器组件。 一、案例预览 预览地址:https://pghy0i.axshare.com 实现效果包括&#…...
本地部署Jina AI Reader:用Docker打造你的智能解析引擎
本地部署Jina AI Reader:用Docker打造你的智能解析引擎 🌟 引言:为什么需要本地部署?📌 场景应用图谱🔧 部署指南(Linux环境)1. 环境准备2. Docker部署3. 验证服务状态 🚀…...
Java基础语法练习42(基本绘图-基本的事件处理机制-小坦克的绘制-键盘控制坦克移动)
目录 一、图形的基本绘制 1.基本介绍: 2.入门代码如下: 3.常用图形的绘制, 示例代码如下: 二、坦克的绘制 三、事件处理机制 四、坦克的移动 一、图形的基本绘制 1.基本介绍: Component 类提供了两个和绘图相关最重要的方…...
RabbitMQ 入门
RabbitMQ 入门 1RabbitMQ 介绍 RabbitMQ 是信息传输的中间者。本质上,他从生产者(producers)接收消息,转发这些消息给消费者(consumers).换句话说,他能够按根据你指定的规则进行消息转发、缓冲…...
yolo环境 pytorch环境配置 CUDA安装
我的成功案例:首先安装python 3.12.9的conda虚拟环境 (如果不安装3.12的会报错误ModuleNotFoundError:没有名为“numpy._core”的模块) 然后安装11.8cuda (其实我是可以最高安装12.6的cuda但我实测,太高版…...
ESP32(4)TCP通信
本章重点讲解 lwIP 的 Socket接口如何配置 TCP客户端,并在此基础上实现收发功能。 TCP Client 连接流程 在实现 TCP 协议之前,用户需要按照以下步骤配置结构体 sockaddr_in 的成员变量,以便建立 TCPClient 连接: ①:…...
【从零开始学习计算机科学】软件测试(二)单元测试 与 集成测试
【从零开始学习计算机科学】软件测试(二)单元测试 与 集成测试 单元测试概述单元测试的内容单元测试的优点单元测试的停止准则单元测试的过程与文档管理单元测试的任务集成测试集成测试关注的问题模块分析集成测试与系统测试的区别集成测试与开发的关系集成测试的层次集成测试…...
数学建模:MATLAB循环神经网络
一、简述 1.循环神经网络 循环神经网络(RNN)是一种用于处理序列数据的神经网络。不同于传统的前馈神经网络,RNN在隐藏层中加入了自反馈连接,使得网络能够对序列中的每个元素执行相同的操作,同时保持一个“记忆”状态…...
EagleTrader为何重申重要数据前后2分钟禁止交易?
3月12日,美国公布了2月份的CPI数据。 美国2月未季调CPI年率录得2.8%,为去年11月来新低,低于市场预期的2.9%。 美国2月季调后CPI月率录得0.2%,为去年10月来新低,预期值为0.3%,前值为0.5%。 数据公布后&#…...
【Spring】声明式事务传播机制
1. 所有传播行为 REQUIRED(默认类型): 如果当前存在事务,则加入该事务;如果没有,则新建一个事务。适用于大多数业务场景。 SUPPORTS: 如果当前存在事务,则加入该事务;…...
个人blog系统 前后端分离 前端js后端go
系统设计: 1.使用语言:前端使用vue,并使用axios向后端发送数据。后端使用的是go的gin框架,并使用grom连接数据库实现数据存储读取。 2.设计结构: 最终展示:仅展示添加模块,其他模块基本相似 前…...
单元测试mock
一、背景 现在有A类,B类,C类,A类依赖B类,依赖C类,如果想要测试A类中的某个方法的业务逻辑。A类依赖其他类,则把其他类给mock,然后A类需要真实对象。这样就可以测试A类中的方法。 举例:Ticket类需要调用Flight类和Pas…...
OpenGL 将屏幕上的二维坐标转换为三维空间中的一个点
本文主要介绍将屏幕上的二维坐标转换为三维空间中的一个点,该点位于 近 平面上(即 Z 坐标为 -1)。 一、步骤概述 屏幕坐标到标准化设备坐标 (NDC): 将屏幕坐标 (x, y) 转换为 NDC 坐标系。NDC 到相机空间: 使用逆投影矩阵将 NDC 坐标转换到相…...
