Python项目依赖管理:venv与conda

一、初步认识

常用的三种虚拟环境和安装包工具:

  • venv:(py自带)虚拟环境工具,配合pip安装依赖,通过requirements.txt批量管理包。
  • conda:(需单独安装)可管理Python和非Python依赖(如CUDA、C库),环境隔离能力强。
  • uv :https://github.com/astral-sh/uv。`uv` 是一个极速的 Python 包安装工具(比pip快10-100倍)。
    • 使用案例:week03\README.md

使用选择:

你是 Python 开发者 → uv 或 venv

你是数据科学家 → conda

你追求极致速度 → uv

你不想装任何额外工具 → venv

你维护旧项目 → 保持现状


二、教程

例如现在有个python项目,里边有个 requirements.txt(记录项目所有依赖包及其版本的文件)

1. 使用 venv(Python自带)

在requirements.txt同级目录执行以下命令。

  1. 创建虚拟环境
bash 复制代码
# Windows
python -m venv .venv

# macOS/Linux
python3 -m venv .venv
  1. 激活虚拟环境
bash 复制代码
# Windows (PowerShell)【在ide工具中执行命令要用这个】
.venv\Scripts\Activate.ps1

# Windows (CMD)
.venv\Scripts\activate.bat

# macOS/Linux
source .venv/bin/activate

激活成功后,命令行前会显示 (venv)

  1. 升级pip(可选但推荐)
bash 复制代码
pip install --upgrade pip
  1. 安装依赖包
bash 复制代码
pip install -r requirements.txt

# 推荐指定国内数据源下载
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
  1. 验证安装
bash 复制代码
pip list

或者在 .venv\Lib 目录可以看到安装的依赖包。

  1. 退出虚拟环境
bash 复制代码
deactivate
  1. 导出依赖到 requirements.txt
bash 复制代码
# 导出所有已安装的包生成 requirements.txt
pip freeze > requirements.txt

2. 使用 Conda

先下载安装 Miniconda 地址:https://repo.anaconda.com/miniconda/

  1. 创建虚拟环境
bash 复制代码
# 创建名为 myenv 的环境,指定Python版本【推荐指定】
conda create -n myenv python=3.11

# 或者创建时不指定Python版本
conda create -n myenv
  1. 激活虚拟环境
bash 复制代码
# Windows/macOS/Linux 通用
conda activate myenv
  1. 安装依赖包
bash 复制代码
# 方法1:使用pip安装(推荐,兼容性最好)
pip install -r requirements.txt

# 方法2:使用conda安装(如果requirements.txt是conda格式)
conda install --file requirements.txt
  1. 导出环境配置(备份用)
bash 复制代码
# 导出conda环境配置
conda env export > environment.yml

# 导出pip格式的依赖
pip freeze > requirements.txt
  1. 验证安装
bash 复制代码
conda list
# 或
pip list
  1. 退出虚拟环境
bash 复制代码
conda deactivate
  1. 其他常用命令
bash 复制代码
# 查看所有环境
conda env list

# 删除环境
conda env remove -n myenv

# 克隆环境
conda create -n newenv --clone oldenv

# 从environment.yml创建环境
conda env create -f environment.yml
相关推荐
进击的明明6 小时前
当AI开始“边想边干”:深入聊聊ReAct,以及如何用Python手搓一个简单Agent
python·面试·agent
全栈弄潮儿7 小时前
Python实战第8期:函数
后端·python·编程语言
卷无止境8 小时前
暗流与破局:AI时代的代码安全审查工具全景指南
后端·python
卷无止境11 小时前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
滴啦嘟啦哒13 小时前
【具身笔记】【π0.5 微调与仿真】五、在MuJoCo中实现可视化仿真
笔记·python·vla·具身
全栈练习生13 小时前
AI安全与红队测试
python·ai
费曼学习法13 小时前
把「发送成功」当「送达」?我排查 IM 长消息被静默吞掉的完整过程
python·ai编程·自动化运维
鸽鸽程序猿13 小时前
【项目】【在线判题系统】b端题目增删改
开发语言·python
NetX行者13 小时前
Python 工程化入门:从脚本到规范的 Python 项目结构
网络·python
MasonYyp13 小时前
asyncio并发协程
python