开发环境搭建-2:配置 python 运行环境(使用 uv 管理 python 项目)
在 WSL 环境中配置:WSL2 (2.3.26.0) + Oracle Linux 8.7 官方镜像
UV 介绍
uv
软件官网(github 需要梯子,没错这个软件的官网真就是 github 页面):https://github.com/astral-sh/uv
中文官网(github 需要梯子,是官网的个人汉化):https://hellowac.github.io/uv-zh-cn/
为啥选择uv
?
- 快,相比 pip 超快
- 一条龙管理:可管理项目、 python 版本、pip 软件包、依赖
(类似于 conda 的功能)
使用参考:
- https://blog.yasking.org/a/python-project-manager-uv.html
- https://www.cnblogs.com/wang_yb/p/18635441
uv 安装
这里使用独立安装包进行安装(这样日后可以独立升级uv
)
在WSL
中执行以下指令
curl -LsSf https://astral.sh/uv/install.sh | sh
执行过程中如果出现问题,也可以先尝试下载保存 .sh
文件,然后再执行文件
# 1. 将文件下载并保存,保存文件名为 install.sh
curl -LsSf https://astral.sh/uv/install.sh -o install.sh# 2. 执行下载的文件
chmod a+x install.sh
./install.sh
安装完成会提示everything's installed!
uv 创建项目
使用uv
创建一个 Python 项目:uv init 项目路径(路径+名称)
这里以官方的示例项目为例,在当前目录下创建项目文件夹
uv init example
文件夹中包含依赖、虚拟环境的配置清清单、程序代码文件等
依赖清单(pyproject.toml
)中的内容
指定了 python 版本(>=3.13)、依赖(dependencies)
创建 python 虚拟环境
类似 conda 的创建环境指令:conda create -n your_env_name python=X.X
语法:uv venv 环境名称 --python 版本
环境名称、版本可省略:uv venv
uv venv test-V13 --python 3.13
提示创建成功,激活可以输入下面绿色文字
会在当前项目下创建虚拟环境文件夹
激活虚拟环境
类似 conda 的环境切换指令:source activate your_env_name
激活前需要先创建对应的虚拟环境
语法:source 虚拟环境文件夹路径/bin/activate
source
激活成功后,命令行左侧多出一个()
区域,显示当前激活的 python 虚拟环境
验证当前 python 指令是否可以执行
uv 配置 pip 加速
类似使用 pip 时在 pip.conf 中配置的 [global] index-url = XXX 配置
虚拟环境激活后,相当于正常使用 python
python 默认的包管理工具 pip 会向国外网站获取数据,速度较慢,需要换成国内的源,加速 pip
参考官方文档,设置uv
的全局加速
在~/.config/uv/uv.toml
文件中,添加以下内容(如果没有文件就大胆新建)
vim ~/.config/uv/uv.toml
修改并保存配置,这里使用清华源
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true
其他源可参考:https://blog.csdn.net/HandsomeHong/article/details/123963679
安装项目依赖包(对于 Python 项目也可装 python 依赖包)
cd example
uv add ruff
这里可见,uv
使用uv add
添加 python 依赖包
- 这个 API 更偏向于项目管理
需要先在pyproject.toml
中指定需要的包(类似原 python 中的requirements.txt
) - 实际上用
uv pip
效果相同,但从大型项目角度不利于维护
安装 python 依赖包
类似 pip install XXX
注意:这个操作需要先激活一个虚拟环境
语法:uv pip install 包名
示例,安装一个requests
包(体验极快的速度)
编写程序文件
这里打开示例项目中的hello.py
文件,相当于我们编写的程序
vim hello.py
示例程序会输出一句:Hello from example!
执行 Python 脚本
执行示例项项目中的 python 程序
- 示例项目路径:
/opt/uv-py/example
. - python 文件名称:
hello.py
cd /opt/uv-py/example
python hello.py
执行结果,与上面的代码逻辑一致
注意:这里执行的前提是先激活一个 Python 环境,否则无法执行python
这个指令
相关文章:

开发环境搭建-2:配置 python 运行环境(使用 uv 管理 python 项目)
在 WSL 环境中配置:WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 UV 介绍 uv软件官网(github 需要梯子,没错这个软件的官网真就是 github 页面):https://github.com/astral-sh/uv 中文官网(github 需要梯…...

STM32 ST7735 128*160
ST7735 接口和 STM32 SPI 引脚连接 ST7735 引脚功能描述STM32 引脚连接(示例,使用 SPI1)SCLSPI 时钟信号 (SCK)PA0(SPI1_SCK)SDASPI 数据信号 (MOSI)PA1 (SPI1_MOSI)RST复位信号 (Reset)PA2(GPIO 手动控制)DC数据/命令选择 (D/C)PA3 (GPIO 手…...

【面试总结】FFN(前馈神经网络)在Transformer模型中先升维再降维的原因
FFN(前馈神经网络)在Transformer模型中先升维再降维的设计具有多方面的重要原因,以下是对这些原因的总结: 1.目标与动机 高维映射空间:FFN的设计目的是通过一系列线性变换来拟合一个高维的映射空间,而不仅…...

VB读写ini配置文件将运行文件放入任务计划程序设置为开机自启动
本示例使用设备: https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bWmhJZJ&ftt&id562957272162 Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpAppl…...

Java基础 (一)
基础概念及运算符、判断、循环 基础概念 关键字 数据类型 分为两种 基本数据类型 标识符 运算符 运算符 算术运算符 隐式转换 小 ------>>> 大 强制转换 字符串 拼接符号 字符 运算 自增自减运算符 ii赋值运算符 赋值运算符 包括 强制转换 关系运算符 逻辑运算符 …...

数据结构——实验六·散列表
嗨~~欢迎来到Tubishu的博客🌸如果你也是一名在校大学生,正在寻找各种编程资源,那么你就来对地方啦🌟 Tubishu是一名计算机本科生,会不定期整理和分享学习中的优质资源,希望能为你的编程之路添砖加瓦⭐&…...

springboot网上书城
摘 要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括网上书城管理系统的网络应用,在国外网上书城管理系统已经是很普遍的方式,不过国内的书城管理系统可能还处于起步阶段。网上书城管理系统具有网上…...

如何在 Pytest 中使用命令行界面和标记运行测试
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在前文你已经初步尝试编写了代码和单元测试,并且想要确保它能正常运行。…...

不建模,无代码,如何构建一个3D虚拟展厅?
在数字化浪潮的推动下,众多企业正积极探索线上3D虚拟展厅这一新型展示平台,旨在以更加生动、直观的方式呈现其产品、环境与综合实力。然而,构建一个既专业又吸引人的3D虚拟展厅并非易事,它不仅需要深厚的技术支持,还需…...

github汉化
本文主要讲述了github如何汉化的方法。 目录 问题描述汉化步骤1.打开github,搜索github-chinese2.打开项目,打开README.md3.下载安装脚本管理器3.1 在README.md中往下滑动,找到浏览器与脚本管理器3.2 选择浏览器对应的脚本管理器3.2.1 点击去…...

Unity Line Renderer Component入门
Overview Line Renderer 组件是 Unity 中用于绘制连续线段的工具。它通过在三维空间中的两个或两个以上的点的数组,并在每个点之间绘制一条直线。可以绘制从简单的直线到复杂的螺旋线等各种图形。 1. 连续性和独立线条 连续性:Line Renderer 绘制的线条…...

数据库的三级模式结构与两级映像
三级模式结构与两级映像 什么是数据库的三级模式结构?1. 模式(Conceptual Schema,概念模式)定义特点作用示例 2. 外模式(External Schema,外部模式)定义特点作用举例 3. 内模式(Inte…...

TCP断开通信前的四次挥手(为啥不是三次?)
1.四次握手的过程 客户端A发送 FIN(终止连接请求) A:我要断开连接了(FIN)。A进入FIN_WAIT_1状态,表示请求断开,等待对方确认。 服务器B回复 ACK(确认断开请求,但还未准备…...

win32汇编环境,按字节、双字等复制字符的操作
;运行效果 ;win32汇编环境,按字节、双字等复制字符的操作 ;这是汇编的优点之一。我们可以按字节、双字、四字、八字节等复制或挨个检查字符。 ;有时候,在接收到的一串信息中,比如访问网站时,返回的字串里,有很多0值存在࿰…...

.net 项目引用与 .NET Framework 项目引用之间的区别和相同
在 .NET 和 .NET Framework 项目中,引用其他库或项目的方式有一些区别和相同之处。以下是详细的对比: 相同点 引用目的: 目的:无论是 .NET 还是 .NET Framework 项目,引用其他库或项目的主要目的是为了使用这些库或项…...

RabbitMQ--延迟队列
(一)延迟队列 1.概念 延迟队列是一种特殊的队列,消息被发送后,消费者并不会立刻拿到消息,而是等待一段时间后,消费者才可以从这个队列中拿到消息进行消费 2.应用场景 延迟队列的应用场景很多,…...

使用pyboard、micropython和tja1050进行can通信
单片机和can收发器之间tx、rx不需要交叉接线!!! tja1050的rx接Y3、tx接Y4 from pyb import CANcan CAN(1) can.init(modecan.NORMAL, prescaler6, sjw1, bs14, bs22, auto_restartTrue) # 1Mbps的配置,本文使用的micropython1.…...

JS学习之JavaScript模块化规范进化论
前言 JavaScript 语言诞生至今,模块规范化之路曲曲折折。 前言 JavaScript 语言诞生至今,模块规范化之路曲曲折折。社区先后出现了各种解决方案,包括 AMD、CMD、CommonJS 等,而后 ECMA 组织在 JavaScript 语言标准层面࿰…...

亚博microros小车-原生ubuntu支持系列:7-脸部检测
背景知识 官网介绍: Face Mesh - mediapipe mpFaceMesh.FaceMesh() 类的参数有:self.staticMode, self.maxFaces, self.minDetectionCon, self.minTrackCon staticMode:是否将每帧图像作为静态图像处理。如果为 True,每帧都会进行人脸检测…...

第二届国赛铁三wp
第二届国赛 缺东西去我blog找👇 第二届长城杯/铁三 | DDLS BLOG web Safe_Proxy 源码题目 from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp Flask(__name__)app.route(/, methods"GET"])de…...

缓存商品、购物车(day07)
缓存菜品 问题说明 问题说明:用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。 结果: 系统响应慢、用户体验差 实现思路 通过Redis来缓存菜品数据,减少数据库查询…...

4【编程语言的鄙视链原因解析】
在编程行业中,是存在鄙视链的,技术越好的圈子越不明显,技术越差的圈子越明显,很多时候为新人营造了错误的观点,我们来针对此类现象为新人们讲解原因 ①心里落差:比如你是学厨师的 你经过过年努力练…...

美团一面面经
第一个问题:介绍一下最近做的项目 第二个问题:我对你项目有个地方比较感兴趣啊。就是你用的那个二级缓存,你的吞吐量有多大啊,为什么需要使用二级缓存? 答: 在二级缓存策略下,笔记详情接口的吞…...

什么是报文的大端和小端,有没有什么记忆口诀?
在计算机科学中,**大端(Big-Endian)和小端(Little-Endian)**是两种不同的字节序(即多字节数据在内存中的存储顺序)。理解这两种字节序对于网络通信、文件格式解析以及跨平台编程等非常重要。 1…...

Spring中BeanFactory和ApplicationContext的区别
目录 一、功能范围 二、Bean的加载时机 三、国际化支持 四、事件发布 五、资源加载 六、使用场景说明 在Spring框架中,BeanFactory和ApplicationContext是两种常见的容器实现方式,它们在功能和使用场景上存在一些显著的差异。本文将详细解析这两种容…...

期货行业专题|基于超融合实现 IT 基础设施现代化与国产化转型实践合集
SmartX 期货行业重要进展 帮助近 60 家期货用户部署 730 超融合节点,含 230 信创节点。 深入 5 大应用场景: 核心生产资源池 主席灾备资源池 信创云资源池 云原生存储与容器资源池 分布式存储资源池 更多超融合金融核心生产业务场景实践…...

AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案
文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在这个AI技术日新月异的时代,图像生成模型已经成为了创意工作者和开发者手中…...

Jenkins-pipeline Jenkinsfile说明
一. 简介: Jenkinsfile 是一个文本文件,通常保存在项目的源代码仓库中,用于定义 Jenkins Pipeline 的行为。使用 Jenkinsfile 可以使 CI/CD 流程版本化,并且易于共享和审核。 二. 关于jenkinsfile: jenkins的pipeline…...

vue3中为什么引入setup,引入setup是为了解决什么问题,setup的执行时机是什么?返回值是什么
在 Vue 3 中,引入 setup 函数是为了提供一种更加简洁、灵活、逻辑分离和可维护的方式来组织组件的逻辑。setup 使得 Vue 3 在构建应用时,能够更加有效地支持组合式 API(Composition API),解决了 Vue 2 中一些组件逻辑组…...

Ubuntu 安装 docker 配置环境及其常用命令
Docker 安装与配置指南 本文介绍如何在 Ubuntu 系统上安装 Docker,解决权限问题,配置 Docker Compose,代理端口转发,容器内部代理问题等并进行相关的优化设置。参考官方文档:Docker 官方安装指南 一、安装 Docker 1…...