Python项目依赖管理:venv与conda

一、初步认识

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

  • venv:(py自带)虚拟环境工具,配合pip安装依赖,通过requirements.txt批量管理包。
  • conda:(需单独安装)可管理Python和非Python依赖(如CUDA、C库),环境隔离能力强。
  • uvhttps://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
相关推荐
MATLAB代码顾问1 天前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
ting94520001 天前
Tornado 全栈技术深度指南:从原理到实战
人工智能·python·架构·tornado
果汁华1 天前
Browserbase Skills:让 Claude Agent 真正“看见“网页世界
人工智能·python
ZhengEnCi1 天前
04-缩放点积注意力代码实现 💻
人工智能·python
DeepReinforce1 天前
三、AI量化投资:使用akshare获取A股主板20260430所有的涨停股票
python·量化·akshare·龙头战法
段一凡-华北理工大学1 天前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章08:多模态数据融合:让数据更聪明
人工智能·python·高炉炼铁·ai赋能·工业智能体·高炉炉温
万粉变现经纪人1 天前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
其实防守也摸鱼1 天前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
callJJ1 天前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
小郑加油1 天前
python学习Day12:pandas安装与实际运用
开发语言·python·学习