Python 环境管理工具选择与安装实践:Conda 与 uv

Python 环境管理工具选择与安装实践:Conda 与 uv

在 Python 项目的开发过程中,如何管理依赖和虚拟环境是至关重要的一环。本文将从工具对比使用场景建议 以及安装实践 三个方面,帮助你快速掌握常见的环境管理方案,并详细展示如何在 Linux 系统中安装 Miniconda 与 uv。

一、Python 环境管理工具对比

1. Conda vs python -m venv

特性 Conda python -m venv
📦 包管理 内置(支持 Python 包和 C/C++ 库) 依赖 pip
🐍 多 Python 版本 ✅ 可指定多版本 ❌ 只能用系统已有版本
🧠 环境管理 一条命令创建/激活/删除 手动管理 venv 目录
🧊 原生依赖支持 ✅ 如 numpy、opencv、CUDA 等原生库安装快速可靠 ❌ 需本地编译,流程繁琐
⚙️ 跨平台一致性 强(同一个 environment.yml 可再现环境) 较弱(不同平台可能表现不一致)
💾 安装体积 较大(Miniconda ~400 MB;Anaconda ~3 GB) 极小(零额外体积)

主要优势对比:

  • Conda :同时管理 Python 包与底层系统库,适合科研/AI/数据分析;安装速度快且稳定;可导出 environment.yml 复现环境;支持多 Python 版本。
  • venv + pip:原生轻量,无需额外安装;适合生产服务器上的轻量 Web 或脚本项目;与系统 Python 紧密结合。

2. Miniconda vs Anaconda

特性 Anaconda Miniconda
包含内容 Python + Conda + 数百个科学计算包 Python + Conda(无预装包)
安装体积 约 3 GB 约 400 MB
灵活性 低(自动安装大量可能用不到的包) 高(按需安装,环境更加精简)
适合人群 新手或教学用户 有经验的开发者,追求干净可控的环境

推荐 :大多数开发者使用 Miniconda,按需安装包,节省存储空间并保持环境精简。

3. 其他现代工具对比

工具 核心功能 特点与适用场景
uv 轻量级 venv + pip 替代品 Rust 编写,速度极快,命令简洁,适合快速构建环境
Poetry 依赖管理 + 发布流程 项目级依赖、版本、打包、发布一体化,适合开发和维护 Python 库
pipx 全局安装 CLI 工具 类似 npx,安装 httpieblack 等工具,不污染全局环境
Pipenv 虚拟环境 + Pipfile.lock 管理 社区热度下降,曾流行,功能类似 Poetry

二、工具选择建议

  • 数据科学 / AI :使用 Miniconda + Conda,可管理 Python 包与底层依赖,快速安装 numpy、pandas、scikit-learn 等科学计算库。
  • Web 项目 / 轻量服务 :推荐 uvPoetry,其中 uv 更加轻量且速度快,Poetry 更适合有发布需求的项目。
  • Python 库开发Poetry 提供完善的依赖和发布管理,推荐用于构建和发布 PyPI 包。
  • 命令行工具安装 :使用 pipx,隔离安装 CLI 工具,不会污染全局环境。

三、安装实践:Miniconda 与 uv

下面示例以 Ubuntu/Linux 系统为例,介绍如何在服务器上安装 Miniconda(默认路径 /opt/miniconda3)和 uv。

1. 安装 Miniconda

bash 复制代码
# 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 安装到 /opt/miniconda3(需要 sudo)
sudo bash Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3

# 添加 Conda 到系统 PATH
echo "export PATH='/opt/miniconda3/bin:$PATH'" | sudo tee /etc/profile.d/conda.sh
sudo chmod +x /etc/profile.d/conda.sh

# 使当前会话生效(或重启终端)
source /etc/profile.d/conda.sh

# 验证安装
conda --version

2. 安装 uv(通过 pipx)

bash 复制代码
# 安装 pipx(使用系统 Python)
python3 -m pip install --upgrade pip
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# 更新当前 shell 的 PATH
export PATH="$HOME/.local/bin:$PATH"

# 安装 uv
pipx install uv

# 验证安装
uv --version

安装路径说明:

  • Miniconda 安装在 /opt/miniconda3,所有 conda 环境和包均保存在此目录。
  • uv 通过 pipx 安装后,可执行文件位于 ~/.local/bin/uv,对应的虚拟环境在 ~/.local/pipx/venvs/uv

四、自动化脚本:一键安装 Conda 和 uv

如果你不想手动执行每一步,下面是一键安装脚本,可以帮助你自动完成 Condauv 的安装:

bash 复制代码
#!/bin/bash

# 设置变量
MINICONDA_INSTALLER="Miniconda3-latest-Linux-x86_64.sh"
MINICONDA_URL="https://repo.anaconda.com/miniconda/$MINICONDA_INSTALLER"
INSTALL_PATH="/opt/miniconda3"

# 下载 Miniconda 安装脚本
echo "📥 下载 Miniconda 安装脚本..."
wget -q --show-progress $MINICONDA_URL

# 安装 Miniconda
echo "⚙️ 正在安装 Miniconda 到 $INSTALL_PATH ..."
sudo bash $MINICONDA_INSTALLER -b -p $INSTALL_PATH

# 添加 Conda 到 PATH
echo "🔧 配置 PATH 到 /etc/profile.d/conda.sh ..."
echo "export PATH="$INSTALL_PATH/bin:$PATH"" | sudo tee /etc/profile.d/conda.sh > /dev/null
sudo chmod +x /etc/profile.d/conda.sh

# 安装 pipx
echo "📦 安装 pipx ..."
python3 -m pip install --upgrade pip
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# 更新当前 shell 的 PATH
export PATH="$HOME/.local/bin:$PATH"

# 安装 uv
echo "🚀 安装 uv ..."
pipx install uv

# 清理安装包
rm $MINICONDA_INSTALLER

# 完成提示
echo ""
echo "✅ 安装完成!你可以执行以下命令生效 Conda:"
echo "   source /etc/profile.d/conda.sh"
echo "   conda --version"
echo "   uv --version"

脚本说明:

  • Miniconda 安装 :脚本会下载 Miniconda 安装包并将其安装到指定路径 /opt/miniconda3
  • Conda 配置 :脚本会在系统的 /etc/profile.d/conda.sh 中添加路径配置,确保你可以在任何终端使用 Conda。
  • pipx 安装与 uv 安装 :脚本会安装 pipx,并通过 pipx 安装 uv,避免全局环境污染。

使用方式:

  1. 下载并保存脚本文件。

  2. 赋予脚本执行权限:

    bash 复制代码
    chmod +x install_conda_uv.sh
  3. 运行脚本:

    bash 复制代码
    ./install_conda_uv.sh

五、总结与实践

  • 环境管理工具差异:通过对比表格可以清晰判断各工具定位和优势,根据项目类型选择最合适的方案。
  • 安装路径 :Conda 建议放在 /opt 级别目录以供多用户使用;uv 通过 pipx 安装到用户目录。
  • 验证方法 :使用 which condawhich uv 或者直接运行 conda --versionuv --version 即可。

通过选择合适的工具和安装实践,你可以高效地管理 Python 项目的依赖和环境。无论你是做数据科学、机器学习、Web 开发,还是构建命令行工具,选择合适的环境管理工具可以帮助你提升工作效率、避免环境问题。

希望本文对你了解 CondaMinicondauv 等工具有所帮助。如果你有其他问题或想进一步探讨,请随时联系我!

参考链接

相关推荐
CodeCraft Studio29 分钟前
国产化PPT处理控件Spire.Presentation教程:使用Python将图片批量转换为PPT
python·opencv·powerpoint·ppt文档开发·ppt组件库·ppt api
五阿哥永琪1 小时前
Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践
spring boot·后端·python
Data_agent1 小时前
Python编程实战:从类与对象到设计优雅
爬虫·python
HZero.chen1 小时前
Linux字符串处理
linux·string
张童瑶1 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
Swizard1 小时前
别再迷信“准确率”了!一文读懂 AI 图像分割的黄金标尺 —— Dice 系数
python·算法·训练
汪汪队立大功1231 小时前
什么是SELinux
linux
石小千1 小时前
Linux安装OpenProject
linux·运维
超级大只老咪1 小时前
数组的正向存储VS反向存储(Java)
java·开发语言·python
柏木乃一1 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程