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 等工具有所帮助。如果你有其他问题或想进一步探讨,请随时联系我!

参考链接

相关推荐
阿桂天山几秒前
实现批量图片文字识别(python+flask+EasyOCR)
开发语言·python·flask
ttumetai3 分钟前
MacOS中安装Python(homebrew,pyenv)
python·macos
徐凤年_3 分钟前
Ubuntu20.04下GraspNet复现流程中的问题
linux·python·ubuntu·ai
Stuomasi_xiaoxin3 分钟前
如何Ubuntu 22.04.5 LTS 64 位 操作系统部署运行SLAM3! 详细流程
linux·运维·ubuntu·ros·slam3
love530love5 分钟前
PyCharm 链接 Podman Desktop 的 podman-machine-default Linux 虚拟环境
linux·运维·windows·pycharm·podman
天天进步20157 分钟前
Python跨平台桌面应用程序开发
开发语言·python
勇敢牛牛@22 分钟前
Python flask入门
开发语言·python·flask
桥Dopey1 小时前
Python常用的第三方模块之【jieba库】支持三种分词模式:精确模式、全模式和搜索引擎模式(提高召回率)
人工智能·python·分词模式
亚力山大抵1 小时前
实验2 python的TCP群聊系统实现
服务器·python·tcp/ip
想学好英文的ikun1 小时前
【MCP】第二篇:IDE革命——用MCP构建下一代智能工具链
ide·人工智能·python·ai·个人开发·mcp