add ".[dev]" packages
uv add --optional dev seaborn
比如
uv add --optional dev jupyterlab nbdev jupyter_copilot
when install, use
pip install -e ".[dev]"
sync with dev
uv sync --extra dev
会同时安装project.dependencies,project.optional-dependencies,和tool.uv.dev-dependencies
如果要更新到最新版
uv sync -U --extra dev
nbdev
不用 sync,用
uv pip install -e ".[dev]"
update packages
uv sync -U
- uv lock -U 只更新 uv.lock 会重新解析到更新的版本,但不会安装到当前 .venv
- uv sync -U 等价于 uv sync --upgrade 会先更新 lockfile,再把环境同步到新版本 也就是同时做了“升级 + 安装”
如果想把 pyproject.toml 里的下限也抬高到当前最新,可以直接:
uv add pandas@latest numpy@latest seaborn@latest
uv cache clean
会clean .cache文件夹里面的东西。
往往有一些wheels, model weights之类的
1.2G .cache/pip
2.8G .cache/uv
1.5G .cache/huggingface
600M .cache/torch
200M .cache/matplotlib
删掉并不影响。uv sync -U 之后正常运行。
uv run 会detect pyproject.toml
如果已经激活某个环境,然后进入到subfolder,想要uv run,如果subfolder有pyproject.toml会报错。
因为uv run的时候会自动detect当前dir的pyproject.toml
这个时候删掉pyproject.toml文件即可。
自动activate
nano ~/.bashrc
在里面添加
alias love="source .venv/bin/activate 2>/dev/null || echo 'No .venv found in this directory.'"
ctrl+O 保存,ctrl+X退出
新开一个terminal,输入指令即可。
注意
在uv env里不代表就可以不用uv ...了,它只是提供了python + pip, 并不是在一个环境里,还是需要uv run...
source .venv/bin/activate
# Regular pip (slow)
pip install -r requirements.txt
# Fast pip (uses uv logic)
uv pip install -r requirements.txt
# Regular run
python main.py
# Faster subprocess-aware run
uv run python main.py
specify python version
uv venv --python=python3.12
source .venv/bin/activate
uv pip install -e ".[dev]"
安装uv
curl -Ls https://astral.sh/uv/install.sh | bash
source ~/.bashrc
uv
self update
uv self update
uv + nbdev
ubuntu里
cd folder
uv venv --python=python3.12 # 如果folder里没有.venv文件
uv pip install -e '.[dev]' # 生成uv.lock文件
uv pip install jupyterlab
source .venv/bin/activate # 激活当前的env
uv run jupyter lab
# 打开jupyter lab 就可以工作了
# 还可以
uv sync # 会根据项目中的 pyproject.toml 和(如果存在的话)uv.lock 文件,把虚拟环境安装得和这些配置一致,
# 但如果是 editable version的话,建议用uv pip install -e, 因为uv sync会把当前package直接安装
需要安装什么在外面的ubuntu terminal安装即可
uv pip install git+gitlink
basics
uv venv
单纯创建一个环境,相当于uv init + uv run main.py,但是只生成一个.venv文件夹
环境名称和当前文件夹的名称是一样的。
环境激活:
source .venv/bin/activate
uv init
创建一个新的folder
uv init hello
会创建这几个文件

添加图片注释,不超过 140 字(可选)
uv run main.py
cd hello
uv run main.py
会生成一个uv.lock (最下面那行) 和一个.venv文件夹

linux系统里生成的.venv 文件夹和uv.lock
ubuntu/linux系统里生成的.venv 和windows系统里生成的不太一样
windows里的长这样,有Lib 和Scripts

添加图片注释,不超过 140 字(可选)
两者不能互换,linux里激活不了这个windows里的.venv,反之亦然。
激活环境
linux里:
source .venv/bin/activate #注意前面加source

添加图片注释,不超过 140 字(可选)
windows里:
.venv\Scripts\activate #注意不是/ 是\ 后划线

添加图片注释,不超过 140 字(可选)
激活完环境可以直接python main.py 而不用 uv run main.py
取消环境
deactivate即可
防止pip在别的环境里安装
export PYTHONNOUSERSITE=1
#然后再
pip install package
uv add package
可以往pyproject.toml里添加package
uv add requests # 最新版
uv add 'requests==2.31.0' # 指定版本
uv add git+https://github.com/psf/requests # git package
如果当前的.venv 和 目录下的.venv不一致,会以目录下的.venv为准来安装,主要是在目录下寻找pyproject.toml然后添加package
uv pip install package
和add package比,这个是临时的,不会添加到pyproject.toml里,但会放在uv.lock里
用现成的pyproject.toml生成环境
比如有下面这个结构

添加图片注释,不超过 140 字(可选)
sync可以生成环境
uv sync
uv sync也会包括 dev packages.
uv build
生成一个dist文件夹,里面是安装文件包

添加图片注释,不超过 140 字(可选)