uv用于管理包,也可以创建虚拟环境和构建包,相当于pip+venv+setup
特点是速度快,功能强大,且他的命令只有两个字母
在有Python的环境下,可通过pip install uv
安装
PowerShell也可以irm https://astral.sh/uv/install.ps1 | iex
bash也可以curl -LsSf https://astral.sh/uv/install.sh | sh
这些本质都是下一个压缩包,里面有uv和uvx两个执行文件
不太推荐这样,国内安装python速度很慢
uv python install 3.12
建议用–python指定python版本
uv init --python=3.12
此时目录下会出现4个文件
仅这样还不够,我们还需要一个虚拟环境,这个也可以通过–python指定python版本
如果已经初始化了python版本,则不需要指定
甚至不执行这个命令,在下面的步骤中,也会自动创建一个虚拟环境
uv venv
创建好虚拟环境后,可以不在命令行中应用环境,uv命令会自动应用环境
方法1: 设置环境变量UV_DEFAULT_INDEX=”https://mirrors.aliyun.com/pypi/simple”
方法2: 在pyproject.toml中编辑
[[index]]
url = "https://mirrors.cloud.tencent.com/pypi/simple/"
default = true
如果default=fasle,就会优先从官方源下载
uv add httpx
uv remove httpx
这样也可以
uv pip install httpx
uv pip uninstall httpx
此时pyproject.toml会自动添加/删除依赖
如果是别人的项目,下过来需要安装依赖,则需要执行
uv sync
uv run main.py
如果不使用uv运行,则需要手动激活环境,并执行命令
注意:在dockerfile中,如果用uv安装了命令(如uvicorn),最好使用uv运行,
因为此时的命令安装在虚拟环境中,全局环境中没有命令,直接执行会报错
uv build
构建的文件在dist/下,这里的.whl文件可以安装
在pyproject.toml中添加行
[project.scripts]
eebackup = "eebackup.__main__:main"
此时再安装这个包,就会有eebackup命令,执行eebackup.__main__下的main函数
uv publish --token <token>
你需要你的账号的token,可以在pypi.org上申请
假如pypi中有个eebackup库,提供了一个命令eebackup
,则可以用uvx运行
uvx eebackup
uvx会自动安装这个库,并运行这个库的命令
uvx其实就等于uv tool run