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
相关推荐
Sakura_j_h_39 分钟前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc
大草原的小灰灰1 小时前
LLM应用的标准开发框架LangChain(八)- 中间件
python·中间件·langchain
卷无止境1 小时前
百万 token 时代的真相:主流大模型上下文窗口与最大输出的横向对比分析
人工智能·python
用户298698530141 小时前
Python 实战:将 HTML 批量转换为 Markdown
python·html·markdown
hhcgchpspk2 小时前
flask服务端页面预防被爬措施
后端·python·flask·网络爬虫·防爬
小小张说故事2 小时前
Python 里 copy.copy() 和 deepcopy() 到底差在哪:拆开 __copy__、__deepcopy__ 和那个防止无限递归的 memo 字典
python
vipxieliang2 小时前
Python collections:高效容器与实战案例
后端·python
青少儿编程课堂2 小时前
蓝桥杯青少组图形化 STEMA 省考(报名倒计时·11/22开考)+ 全国青少年信息素养大赛 2026—2027赛季 + 电子学会图形化考级:校园华容道大闯关
c++·python·算法·bfs·信息学竞赛
特创数字科技2 小时前
写了个 Windows 下载器:一键拉 GitHub / Gitee 源码,带 SHA256 校验
python·github
郝学胜-神的一滴3 小时前
AI 编程智能体 27:吃透MCP通信机制
人工智能·python·langchain·wpf·numpy·scikit-learn