python环境依赖配置从pip到uv(从以前到现在): uv的使用教程
我们来回顾以下我们以前创建项目时的步骤。
首先,创建一个python环境,编写下面的代码
import numpy as np
np = np.array([1,2,3,4,5])
print(np)
我们发现需要导入包numpy,最开始我们是直接使用pip导入
pip install numpy
导入之后我们可以直接使用了,但是我们会发现,这里的包导入的是python的全局环境中,如果我们项目工程逐渐复杂,包之间的依赖冲突就会出现。会导致版本冲突,地狱依赖。
于是我们为了更好的管理我们的项目我们创建一个新的虚拟环境
python -m venv .venv
产生一个虚拟环境,这里的.venv就是我们给虚拟环境起的名字。
执行完代码后会发现多出一个.venv的目录,里面存放的是一个独立的python环境所需要的所有文件。
然后我们需要激活环境:
使用以下指令:
.venv/Scripts/activate
激活环境后我们再次安装
pip install numpy
这一次安装就会安装在我们的虚拟环境的文件夹.venv里
其实主要是修改了python中的sys.path的这个变量,里面记录了python在导入模块时,需要搜索的一系列文件夹路径。
在终端执行以下代码你就会看到这些路径,当我们import numpy的时候他就会一次在这些包里去寻找,直到找到numpy这个包。
python
import sys,pprint
pprint.pp(sys.path)
在激活了虚拟环境后,sys.path会被修改,我们的虚拟环境目录会被添加到这个搜索列表里,

那我们如何读取依赖项呢,我们使用以下命令可以打印出依赖项。
pip freeze > requirements.txt
当别人拿到这个项目的时候就无需关心你所需要的依赖项了,直接执行以下代码读取所有的依赖并且安装。
pip install -r requirements.txt
但是仍然会存在着一些问题,比如说有些依赖并不是我们所真的需要的,有一些间接依赖,我们在删除掉我们指定的依赖后并不会删除掉它的一些间接依赖。
比如还有一种方法就是我们新建一个文件pyproject.toml文件直接添加依赖
[project]
name = "proj"
version = "0.1.0"
直接加入一个字段dependencies中你所要添加的依赖项
[project]
name = "proj"
version = "0.1.0"
dependencies = [
"numpy>=2.3.2",
]
在里面添加你想要添加的配置文件后执行指令,然后程序就会读取这个配置文件然后安装对应的依赖。
pip install -e .
那么问题来了,有没有既实惠还管饱的操作呢?有的兄弟,有的有的。
这就我们就会要讲到uv这个东西了,你可以理解为上述对应的venv、pip的高级封装。
我们正式学习uv
首先你要导入uv的依赖
pip install uv
使用uv初始化项目
uv init mytest(文件名称)

执行这两行指令后会自动生成一个mytest的文件夹里面主要生成的文件是pyproject.toml
然后执行指令去创建一个新的虚拟环境
#切换到这个目录下
cd .\mytest\
#创建虚拟环境
uv venv #后面可以添加(环境名),以及python的版本如 --python 3.10
#激活虚拟环境
.venv/Scripts/activate

这样你的虚拟环境以及依赖就可以随着你的心意导入了
之后你添加依赖直接使用以下指令,它会自动寻找对应的venv然后下载依赖并且更新pyproject.toml文件里的依赖信息。
uv add numpy
运行代码可以直接使用以下指令直接运行,他会自动找寻到对应的venv然后执行代码。
uv run main.py
💡现在你的虚拟环境就搭建好了。然后你使用pycharm的话一定要手动导入你现在所创建的虚拟环境的解释器(一定要导)
当别人拿到你的项目的时候就可以直接执行这条指令,程序就会根据pyproject.toml文件去下载依赖以及配置虚拟环境了。
uv sync
这么看来是不是uv很简单,操作是不是更加的快捷了。
现在你就可以快乐的去使用uv啦~
: uv的使用教程&spm=1001.2101.3001.5002&articleId=151119584&d=1&t=3&u=4a8701d9cb5b4e8f85f86f1b964d880f)
3171

被折叠的 条评论
为什么被折叠?



