Python 环境管理入门:为什么我推荐 Miniconda + Conda(附常用命令与实战)
你是否遇到过这种情况:项目 A 需要
numpy 1.24,项目 B 需要numpy 1.26;改完一个,另一个就报错?又或者同事说“我这边能跑”,你这边却满屏ImportError?
如果你点头了,这篇文章就是为你写的。
如果你刚开始做 Python 开发,或者已经被“依赖冲突”“环境跑不起来”“换台机器就复现失败”折腾过几次,那么你大概率会需要一个更稳妥的环境管理方案。
我自己的建议是:优先从 Miniconda + Conda 开始,而不是一上来就把所有包装满,或者只靠 pip + venv 硬扛。
这篇文章想解决 4 个问题:
- Conda 到底解决了什么问题?
- Miniconda 安装完成后,怎么让终端能用上 Conda?
- 日常开发里最常用的命令有哪些?
- 如果要在项目里调用大模型,Conda 环境该怎么配?
文章目录
1. Conda 到底是什么
很多人第一次接触 Conda,会把它简单理解成“另一个包管理器”。这样说不算错,但不完整。
Conda 更核心的价值,其实是同时管理“包”和“环境”。
这意味着它不只会装 Python 包,还能处理很多 Python 生态之外的依赖,比如 C/C++ 动态库、部分科学计算库依赖,甚至还能管理不同项目之间互相隔离的运行环境。
这件事在数据分析、机器学习、深度学习场景里尤其重要。因为很多库并不是纯 Python;涉及底层二进制依赖时,排查版本兼容问题的成本可能会比较高。
2. 为什么我更推荐 Miniconda,而不是 Anaconda
Conda 常见的两个入口是 Anaconda 和 Miniconda:
- Anaconda:预装了大量常见科学计算包,装完就能直接用,适合教学演示或想一步到位的人。
- Miniconda:只保留最基础的 Conda 能力,环境更干净,也更轻量。
如果你是自己长期维护开发环境,我更推荐 Miniconda。原因很简单:
- 安装体积更小,不会一开始就塞进一大堆你可能根本用不到的包。
- 环境更可控,需要什么再装什么。
- 出问题时更容易定位,不容易被预装依赖“污染”。
一句话概括:Anaconda 更像“全家桶”,Miniconda 更像“按需搭建”。
3. 安装 Miniconda 后,先完成一次初始化
可以从 Miniconda 官方安装页面 下载与你的操作系统对应的安装程序。安装时按默认选项完成即可。
安装后,Windows 用户可以直接打开 Miniconda Prompt 使用 Conda;如果希望在 PowerShell 中也能使用,可执行:
conda init powershell
执行后请关闭并重新打开 PowerShell,再运行下面的命令确认安装是否成功:
conda --version
如果能看到 Conda 的版本号,就可以继续了。conda init 会修改 shell 的初始化配置;不想修改 PowerShell 配置的话,始终使用 Miniconda Prompt 也是完全可以的。
4. Conda 最常用的命令
真正开始用 Conda 后,日常高频操作其实就那么几类:创建环境、激活环境、安装包、导出环境。
4.1 创建环境
# 创建一个 Python 3.11 环境
conda create -n myenv python=3.11
# 创建环境时顺手装几个常用包
conda create -n datascience python=3.10 pandas numpy matplotlib
我建议尽量按项目建环境,而不是所有项目共用一个环境。这样后期升级依赖时,你会轻松很多。
4.2 激活和退出环境
conda activate myenv
conda deactivate
激活成功后,终端前面通常会看到 (myenv),这表示当前命令都运行在这个环境里。
4.3 查看本机有哪些环境
conda env list
# 或者
conda info --envs
当前激活的环境前面会带 *。
命令输出的最后一列就是环境所在的完整路径。通常不需要手动进入或修改这些目录;记住通过 conda activate 环境名 切换环境即可。
4.4 删除和克隆环境
# 删除环境
conda remove -n myenv --all
# 克隆一个现有环境
conda create -n myenv_test --clone myenv
克隆环境非常适合做实验。比如你想升级某个核心包,又担心把原项目搞坏,先克隆再改会更稳。
4.5 安装、更新、卸载包
# 安装
conda install numpy
# 安装多个包
conda install pandas scikit-learn
# 安装指定版本
conda install numpy=1.26
# 更新
conda update pandas
# 卸载
conda remove numpy
如果某个包在默认 Conda 渠道里没有,或者版本不合适,也可以在 Conda 环境中继续使用 pip。比较稳妥的习惯是:
python -m pip install openai
同一环境中混用 Conda 和 pip 时,建议先用 Conda 安装能找到的核心依赖,再用 pip 补充缺失的包。安装过 pip 包后,尽量避免继续对整个环境做大规模 Conda 更新;需要大幅调整依赖时,重建环境往往更稳妥。
4.6 导出环境,方便复现
这是 Conda 特别实用的一点。
# 导出完整环境
conda env export > environment.yml
# 从文件重建环境
conda env create -f environment.yml
如果你更在意“跨机器可迁移性”,也可以考虑只导出你手动安装过的依赖:
conda env export --from-history > environment.yml
这样生成的文件通常更干净,不容易把平台相关的细节一并带进去。需要注意:它可能不会完整记录通过 pip 安装的包;项目混用 pip 时,最好额外维护 requirements.txt,或在交付前检查 environment.yml 是否包含所需依赖。
5. Conda 和 venv,到底该怎么选
这是很多初学者都会问的问题。我的结论很直接:
- 如果你做的是 纯 Python 项目、依赖简单、追求轻量,
venv完全够用。 - 如果你做的是 数据分析、机器学习、依赖复杂、需要更强环境隔离 的项目,Conda 往往更省心。
可以简单对比一下:
| 维度 | Conda | venv |
|---|---|---|
| 管理对象 | Python 包 + 非 Python 依赖 + 环境 | Python 虚拟环境(包通常由 pip 管理) |
| 包管理能力 | 更强,适合复杂依赖 | venv 本身不管理包,通常配合 pip |
| 上手成本 | 略高,需要先安装 Miniconda/Anaconda | 更低,Python 自带 |
| 适合场景 | 数据科学、机器学习、多环境项目 | 轻量 Web 项目、脚本项目 |
所以不要把它们理解成“谁替代谁”,而是把它们看成两个针对不同场景的工具。
6. 一个实际例子:在 Conda 环境里调用大语言模型
如果你正在做 AI 相关开发,一个很常见的需求就是:给项目单独建一个环境,只安装模型调用需要的依赖。
下面用一个简单例子演示。这里以 qwen-plus 为例,并通过兼容 OpenAI SDK 的接口调用;其他提供 OpenAI 兼容接口的模型服务,调用思路也基本类似。
第一步:创建并激活环境
conda create -n llm_env python=3.11
conda activate llm_env
第二步:安装依赖
python -m pip install openai
第三步:配置环境变量
如果你使用的是 PowerShell,可以这样设置当前会话的环境变量:
$env:DASHSCOPE_API_KEY="sk-xxx"
$env:DASHSCOPE_WORKSPACE_ID="你的工作空间 ID"
本文示例使用北京地域的百炼工作空间;请将 你的工作空间 ID 替换为实际值。如果你已经提前配置过这两个系统环境变量,这一步可以跳过。其他地域的接口地址请以百炼 OpenAI 兼容接口文档为准。
不要把真实 API Key 写进代码、截图或提交到 Git 仓库。本文中的
sk-xxx只是占位符。
第四步:编写测试代码
import os
from openai import OpenAI
workspace_id = os.environ["DASHSCOPE_WORKSPACE_ID"]
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
# 北京地域的百炼 OpenAI 兼容接口地址
base_url=f"https://{workspace_id}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你是谁?"},
],
)
print(completion.choices[0].message.content)
第五步:运行
python test_llm.py
这样做的好处是很明确的:
- 大模型调用相关依赖不会污染你其他项目的环境。
- 后续要升级 SDK 或切换接口时,影响范围可控。
- 需要分享给别人时,可以直接把
environment.yml一起交出去。
7. 我对 Conda 的一个实际建议
如果你准备长期写 Python,我很建议尽早养成下面这几个习惯:
- 一个项目一个环境。
- 不要长期把所有工作都堆在
base环境里。 - 重要项目记得导出
environment.yml。 - 能用 Conda 安装的核心依赖优先用 Conda,缺失的再补
pip。
这些习惯看起来不起眼,但它们会直接决定你半年后维护项目时是轻松还是崩溃。
总结
Conda 最大的价值,不只是“能装包”,而是它帮你把 Python 项目的运行环境变得更清晰、更隔离、更可复现。
如果你只是偶尔写几个小脚本,venv 可能已经足够;但如果你开始接触多项目开发、数据分析、机器学习,或者任何依赖稍微复杂一点的场景,Conda 基本都会让你省下很多排错时间。
如果要我给一个简单建议,那就是:
新手先装 Miniconda,学会按项目建环境,再慢慢补包管理经验。
如果这篇文章帮你理清了 Python 环境管理的思路,欢迎点赞、收藏。
你在使用 Conda 或 venv 时还遇到过哪些坑?欢迎在评论区交流;后续我也会继续整理 Python 开发中的实战经验。
更多推荐


所有评论(0)