您现在的位置是:网站首页> PY&Rust

UV与Conda工具使用收集

  • PY&Rust
  • 2025-09-11
  • 72人已阅读
摘要

UV与Conda工具使用收集


1.jpg


UVX NPX介绍

为什么Python开发者都在疯狂推荐uv

Conda技术收集一




为什么Python开发者都在疯狂推荐uv

点击查看原文

uv 是一个用 Rust 写的 Python 包和项目管理器。你可以把它理解成 “pip + venv + pip-tools + poetry + conda” 的一个混合体

uv 有啥亮点?

1.快,是真的快

uv 用 Rust 写的,速度比 pip 提升一个数量级。有人测试过,安装一个复杂项目依赖(几十个包),uv 只需要几十秒,而 pip 要好几分钟。对比下来,几乎就是火箭 vs 自行车。

2.一体化管理

uv 不仅能装包,还能创建虚拟环境、管理项目依赖。换句话说,你不需要再来回切换 pip、venv、poetry,uv 一条龙全包。

3.更智能的依赖解析

传统 pip 依赖冲突时给你一堆红字,自己慢慢改。uv 内置更好的依赖解析器,可以快速算出一个可行的依赖方案,大大减少“修 requirements.txt 修到怀疑人生”的情况。

4.兼容性好

你担心“新工具是不是要学一堆新命令”?不用,uv 大部分命令跟 pip 类似,迁移成本很低。

uv 相比 conda、pip 的优势在哪里?

对比 pip:uv 更快,解决依赖冲突能力更强,而且内置虚拟环境管理。pip 只是个包安装器,uv 是完整的解决方案。

对比 conda:uv 更轻量级,不会动不动装个包带一堆 C 库,环境体积小得多。而且 uv 下载速度吊打 conda。

对比 poetry/pipenv:uv 更简洁,不用学习一堆花哨语法,也没有历史遗留问题。

一句话总结:uv 在速度上碾压 pip,在轻量上碾压 conda,在易用性上碾压 poetry。


如何快速上手 uv?

如果你想试试看 uv,很简单。

对于长期使用,更推荐官方提供的安装脚本,它能确保获取最新版本、正确配置环境变量,并避免与 Python 包管理系统产生不必要的交互。只有在临时测试或受限于环境时,才考虑用 pip install uv

1.安装 uv

官方推荐用命令行一键安装(Linux/Mac):

curl -LsSf https://astral.sh/uv/install.sh | sh


Windows 用户可以用 PowerShell:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

我想大家的电脑应该还是 Windows 居多,如果不想使用命令的话,可以从GitHub Releases 下载:

https://github.com/astral-sh/uv/releases


2.创建虚拟环境并安装依赖

在你的项目目录下,开始使用 uv 作为包管理器:


uv init my_project

cd my_project

uv add requests

这时,uv 会自动帮你创建环境,并且把 requests 包加进去,requirements 和锁文件全都给你维护好。


3.运行项目

uv run python main.py

是不是感觉有点像 poetry,但更简单?


点击查看知乎介绍全文

虚拟环境管理

创建名为 uvtest 的虚拟环境

uv venv --python 3.8 uvtest


激活名为 uvtest 的虚拟环境

Linux或者MacOS系统:

source uvtest/bin/activate

Windows系统:

uvtest/Scripts/activate # 正斜杠

uvtest\Scripts\activate # 反斜杠


退出当前的虚拟环境

deactivate


清理缓存

uv cache clean


清理未使用的虚拟环境

uv venv prune


包管理

安装Python包

uv pip install <package_name>


安装特定版本的包

uv pip install numpy==2.2.0


也支持范围指定:

uv pip install "torch>=2.0.0,<2.1.0"


从 requirements.txt 批量安装

uv pip install -r requirements.txt


如果需要覆盖已有依赖,可以加 --force-reinstall

uv pip install -r requirements.txt --force-reinstall


安装开发版或 Git 仓库中的包

uv pip install git+https://github.com/<user>/<repo>.git


安装本地 wheel 文件

uv pip install <path_to_wheel>.whl

示例:uv pip install torch-2.0.1+cu121-cp310-cp310-linux_x86_64.whl


查看已安装的包

uv pip list


升级包

uv pip install --upgrade <package_name>


卸载包

uv pip uninstall <package_name>


导出依赖列表

uv pip freeze > requirements.txt


根据依赖列表创建环境(同3.2)

uv pip install -r requirements.txt


检查依赖冲突

uv pip check



项目管理

初始化项目

uv init <project_name>

创建一个新项目目录,包含 pyproject.toml 文件


添加依赖到项目

uv add <package_name>


移除项目依赖

uv remove <package_name>


同步项目依赖

uv sync

根据 pyproject.toml 同步环境中的依赖,安装缺失的包,移除多余的包。

可选参数:--frozen 锁定版本,防止自动升级。


锁定依赖

uv lock


运行脚本和命令

运行 Python 脚本

uv run <script>.py

说明:uv run 自动在虚拟环境中执行,隔离外部依赖。


运行带依赖的命令

uv run --with <package_name> <command>

示例:uv run --with torch python train.py 临时安装 PyTorch 并运行脚本。



镜像源和性能优化

设置全局镜像源

uv pip install <package_name> --index-url <url>

示例:uv pip install torch --index-url https://mirrors.aliyun.com/pypi/simple/。

替代方法:编辑 uv 配置文件(~/.config/uv/uv.toml):

[pip]

index-url = "https://mirrors.aliyun.com/pypi/simple/"


并行下载

uv pip install <package_name> --parallel



Conda技术收集一

conda 可以创建指定版本的 Python 环境,并且当系统中没有对应版本时,会自动下载并安装所需的 Python 版本,这是 conda 作为包管理器的一大优势

环境创建

1.创建指定 Python 版本的环境

直接在创建环境时通过 python= 参数指定版本:

# 创建一个 Python 3.9 的环境

conda create -n myenv python=3.9


# 创建一个精确版本的 Python 环境(如 3.10.8)

conda create -n myenv python=3.10.8


2.自动下载缺失的版本

如果系统中没有安装指定的 Python 版本,conda 会从其仓库中自动下载并安装对应版本,无需手动提前配置。


3.在现有环境中安装特定 Python 版本

也可以在已存在的环境中安装指定版本(可能会导致依赖冲突,谨慎使用):

conda install -n myenv python=3.8



4.通过 yaml 文件定义环境(推荐)

在 environment.yml 中指定 Python 版本,然后创建环境:

name: myenv

channels:

  - defaults

dependencies:

  - python=3.11

  - numpy


执行创建命令:

conda env create -f environment.yml


虚拟环境使用

1.激活虚拟环境

# Windows 系统(CMD 或 PowerShell)

conda activate myenv


# macOS/Linux 系统(bash/zsh)

conda activate myenv


2.使用 Conda 安装包

# 安装指定包(如 numpy)

conda install numpy


# 安装指定版本的包

conda install pandas=1.5.3


# 从第三方频道安装(如 conda-forge,包更全)

conda install -c conda-forge matplotlib



3.使用 pip 安装包

若 Conda 仓库中没有所需包,可在激活环境后使用 pip 安装(此时 pip 属于当前环境):

bash

# 在当前激活的环境中用 pip 安装

pip install some-package

pip install some-package==2.1.0  # 指定版本


4.确认安装

查看当前环境已安装的包:

bash

# 查看 Conda 安装的包

conda list


# 查看 pip 安装的包(通常也会显示在 conda list 中)

pip list


5.退出环境

操作完成后,可退出当前环境:

bash

conda deactivate


注意事项:

尽量避免在同一个环境中混合使用 conda install 和 pip install,可能导致依赖冲突

若需共享环境配置,可导出环境文件:

conda env export > environment.yml  # 导出

conda env create -f environment.yml  # 重建环












Top