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
相关推荐
Scott9999HH3 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
AI云海4 小时前
python 列表、元组、集合和字典
开发语言·python
二十雨辰4 小时前
[爬虫]-Urllib
爬虫·python
玉鸯6 小时前
Agent Hook:在概率推理之上,为 Agent 叠加确定性控制
python·langchain·agent
weixin_446260856 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
我的xiaodoujiao7 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
qetfw7 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
用户8356290780518 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
一次旅行8 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化