0%

ubuntu22安装uv管理python

ubuntu22安装uv管理器

本文参考自:1、【Python】使用uv管理python虚拟环境_uv环境python-CSDN博客

本文参考自:2、uv 简易安装与更换国内镜像源_uv 国内源-CSDN博客

1、安装uv管理器

  • Mac || Linux安装:
curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows安装:
# 方式1: 在 Windows 上:使用 Astral.sh 提供的安装脚本
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 方式2: 在 Windows 上:使用 scoop 安装 uv
scoop install uv
  • pip安装方式:
pip install uv
  • 验证是否安装成功:
# 验证安装是否成功
uv --help

# 查看uv版本
uv --version

img

2、卸载uv:

uv cache clean
rm -r "$(uv python dir)"
rm -r "$(uv tool dir)"

# mac/linux
rm ~/.local/bin/uv ~/.local/bin/uvx
# windows
rm $HOME.local\bin\uv.exe
rm $HOME.local\bin\uvx.exe

3、python管理:

  • 查看python可用版本
uv python list
  • 安装python3.13
# 标准安装方式
uv python install 3.13

# 其他安装Python的方式实现,比如PyPy实现的python
uv python install pypy@3.13
  • 查找某个python版本的路径
uv python find 3.10
# 输出:
# /Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10
  • 选用python版本(在具体的某个项目中,进入项目目录,使用如下命令指定选用的python版本)
uv python pin 版本号

# 这个命令会在指定目录下创建一个 `.python-version` 文件,内容如下

uv python pin 3.10
# 输出:
# Pinned `.python-version` to `3.10`

cat .python-version
# 输出:
# 3.10

4、创建虚拟环境(项目)

  • 方式1:创建项目有两种方式,第一种方式,先创建好项目目录,然后设置python版本并初始化uv虚拟环境
uv python pin 3.10
uv init # 初始化
  • 执行了uv init之后,会在当前目录下创建几个文件,同时也会在当前目录下执行git init创建出一个新的git仓库来
~/data/code/python/test_code                                                                                                      
❯ uv python pin 3.13
Pinned `.python-version` to `3.13`

~/data/code/python/test_code
❯ uv init
Initialized project `test-code`

~/data/code/python/test_code main ?6
ls
README.md main.py pyproject.toml
  • 方式2:另外一个方式是在init之后添加一个项目名,会自动创建项目文件夹
uv init 项目名

5、添加依赖

uv add 依赖项

# 比如添加requests库
uv add requests

# 还可以指定具体版本
uv add requests==版本号

执行了这个命令后,会在当前目录下创建.venv虚拟环境目录(在vscode里面可以选择这个目录作为虚拟环境,否则代码解析会有问题),并添加我们要的依赖项,同时会新增一个uv.lock文件,用于存放依赖项版本相关的信息。pyproject.toml文件中的dependencies字段也会包含需要的依赖项。

~/data/code/python/test_code main ?6                                                                                              
❯ uv add requests
Using CPython 3.13.1 interpreter at: /opt/homebrew/opt/python@3.13/bin/python3.13
Creating virtual environment at: .venv
Resolved 6 packages in 13.85s
Prepared 5 packages in 5.55s
Installed 5 packages in 13ms
+ certifi==2025.1.31
+ charset-normalizer==3.4.1
+ idna==3.10
+ requests==2.32.3
+ urllib3==2.4.0

而且,从这个输出中也能看到,它自动使用了.python-version指定的3.13版本的python,和当前我们全局目录下的python3指向什么版本没有关系(我的全局python3指向的是3.10版本)

6、运行程序

依赖添加好后,就可以使用uv来运行python程序了

uv run 程序文件名 [命令行参数]

uv会自动按照我们的配置来运行程序,无序我们手动维护依赖项,也不需要手动去source各式各样的虚拟环境了。

7、uvx命令

随着uv下载的还有一个uvx命令,uvx命令本质上是uv tool run命令的别名

uvx python main.py
# 等价于
uv run main.py
# 等价于
uv tool run main.py

实际例子,如下这两个命令是等价的

❯ uvx --directory ~/data/code/python/test_code python main.py
Hello from test-code!

❯ uv tool run --directory ~/data/code/python/test_code python main.py
Hello from test-code!

8、设置下载包的镜像源

uv下载第三方库本质上也是通过pypi源下载的,所以在国内网络环境中默认链接速度会很慢,可以在项目目录的pyproject.toml中添加如下内容来使用清华源

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

运行uv add命令的时候也可以指定镜像源

uv add --default-index https://pypi.tuna.tsinghua.edu.cn/simple requests

uv也提供了全局的配置项,可以通过环境变量UV_DEFAULT_INDEX配置镜像源

export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple

全局的配置项优先级低于pyproject.toml中配置的镜像源。如果pyproject.toml里面配置了镜像源,则会使用pyproject.toml的配置。