Python 与 Conda 编程实战指南:从环境配置到项目运行完整入门
很多 Python 初学者在真正写项目之前,最容易卡住的地方不是语法,而是环境。
同一台电脑上可能同时存在 Python 3.8、Python 3.10、Python 3.12;一个项目需要 numpy,另一个项目需要 pytorch;有的包通过 pip 安装,有的包通过 conda 安装;运行别人项目时还会遇到版本冲突、包找不到、环境无法复现等问题。
这类问题如果只靠"缺什么装什么",很快就会把本机 Python 环境弄乱。conda 的价值就在这里:它可以帮助我们创建相互隔离的 Python 环境,并管理不同项目所需的软件包。
本文以实战方式整理 Python 与 conda 的常用开发流程,适合刚开始做 Python 编程、数据分析、机器学习、自动化脚本和科研项目复现的学习者。
文章目录
- 一、为什么 Python 开发建议使用 conda
- 二、Anaconda 与 Miniconda 怎么选
- 三、安装后第一步:检查 conda 是否可用
- 四、创建 Python 虚拟环境
- 五、激活、退出、查看和删除环境
- 六、安装第三方包
- 七、conda 与 pip 如何配合使用
- 八、导出和复现项目环境
- 九、完整实战:创建一个数据分析项目环境
- 十、常见问题与避坑说明
- 十一、常用命令速查表
一、为什么 Python 开发建议使用 conda
Python 本身可以直接安装第三方库,例如:
bash
pip install requests
pip install pandas
但在多项目开发时,直接把所有库都装到系统 Python 里,会带来几个问题:
- 不同项目依赖的 Python 版本不同。
- 不同项目依赖的第三方库版本不同。
- 新安装的包可能破坏旧项目。
- 复现别人项目时,很难保证版本一致。
- 数据分析、深度学习相关库依赖较多,手动处理会比较麻烦。
conda 可以为每个项目创建独立环境。例如:
bash
conda create -n data_demo python=3.10
conda activate data_demo
这样 data_demo 环境里的 Python 和第三方包不会影响其他项目。
可以把 conda 环境理解为"项目专属工具箱":每个项目一个工具箱,需要什么工具就装什么工具,不同工具箱之间互不干扰。
二、Anaconda 与 Miniconda 怎么选
常见选择有两个:
- Anaconda:体积较大,预装了很多数据科学相关包,适合希望安装后直接使用 Jupyter、numpy、pandas、matplotlib 的用户。
- Miniconda:体积较小,只包含 conda 和基础 Python,适合希望按项目手动安装依赖的用户。
个人建议:
- 初学者做数据分析,可以选 Anaconda。
- 想让环境更干净、更轻量,建议选 Miniconda。
- 做项目开发、部署、复现论文代码时,更推荐 Miniconda。
安装完成后,Windows 用户建议打开 Anaconda Prompt 或 Miniconda Prompt 执行命令;Linux/macOS 用户可以直接使用终端。
三、安装后第一步:检查 conda 是否可用
打开终端后输入:
bash
conda --version
如果能看到类似输出,说明 conda 已经安装成功:
bash
conda 24.9.2
查看 conda 详细信息:
bash
conda info
查看当前已有环境:
bash
conda env list
或者:
bash
conda info --envs
输出中带 * 的环境表示当前正在使用的环境。
四、创建 Python 虚拟环境
1. 创建指定 Python 版本的环境
创建一个名为 py310_demo 的环境,并指定 Python 版本为 3.10:
bash
conda create -n py310_demo python=3.10
执行过程中,conda 会列出需要安装的包,并询问是否继续:
bash
Proceed ([y]/n)?
输入:
bash
y
即可继续安装。
2. 创建环境时同时安装常用库
例如创建数据分析环境:
bash
conda create -n data_env python=3.10 numpy pandas matplotlib jupyter
这种方式比先创建环境、再一个个安装包更省事,也能减少部分依赖冲突。
3. 环境命名建议
环境名建议简单、明确:
bash
conda create -n spider_env python=3.10
conda create -n data_env python=3.10
conda create -n torch_env python=3.10
不建议使用中文、空格或过长名称。
五、激活、退出、查看和删除环境
1. 激活环境
bash
conda activate py310_demo
激活成功后,命令行前面通常会出现环境名:
bash
(py310_demo) C:\Users\yourname>
这表示后续执行的 python、pip、conda install 都会作用在当前环境中。
2. 查看当前 Python 路径
Windows:
bash
where python
Linux/macOS:
bash
which python
也可以进入 Python 查看版本:
bash
python --version
3. 退出当前环境
bash
conda deactivate
4. 查看所有环境
bash
conda env list
5. 删除环境
如果某个环境不再使用,可以删除:
bash
conda remove -n py310_demo --all
或者:
bash
conda env remove -n py310_demo
删除前一定确认环境名,避免删错。
六、安装第三方包
1. 使用 conda 安装包
先激活环境:
bash
conda activate data_env
安装 pandas:
bash
conda install pandas
安装指定版本:
bash
conda install pandas=2.2
同时安装多个包:
bash
conda install numpy pandas matplotlib seaborn
2. 使用 conda-forge 频道
有些包在默认频道版本较旧,或者找不到,可以使用 conda-forge:
bash
conda install -c conda-forge package_name
例如:
bash
conda install -c conda-forge opencv
也可以把 conda-forge 加入频道配置:
bash
conda config --add channels conda-forge
conda config --set channel_priority strict
3. 查看已安装包
bash
conda list
查看某个包:
bash
conda list pandas
4. 更新包
bash
conda update pandas
更新当前环境中所有包:
bash
conda update --all
实际项目中不建议随便执行 conda update --all,因为它可能导致项目依赖版本变化。更稳妥的做法是只更新需要的包。
七、conda 与 pip 如何配合使用
很多人会问:已经有 conda 了,还能不能用 pip?
答案是可以,但要注意顺序。
推荐原则:
- 能用 conda 安装的包,优先用 conda。
- conda 找不到的包,再用 pip。
- pip 操作前一定先激活目标环境。
- 不要在 base 环境里乱装项目依赖。
示例:
bash
conda activate spider_env
conda install requests beautifulsoup4
pip install fake-useragent
检查 pip 是否属于当前环境:
bash
where pip
或者:
bash
python -m pip --version
更推荐使用:
bash
python -m pip install package_name
这样可以避免系统里存在多个 pip 时装错位置。
八、导出和复现项目环境
当一个项目可以正常运行后,建议导出环境文件,方便以后迁移或给别人复现。
1. 导出 environment.yml
先激活环境:
bash
conda activate data_env
导出:
bash
conda env export > environment.yml
这个文件会记录环境名、频道、conda 包和 pip 包。
2. 根据 environment.yml 创建环境
别人拿到项目后,可以执行:
bash
conda env create -f environment.yml
创建完成后激活:
bash
conda activate data_env
3. 更简洁的 environment.yml 写法
有时自动导出的文件包含很多平台相关依赖,不利于跨电脑复现。可以手动写一个更简洁的版本:
yaml
name: data_env
channels:
- conda-forge
- defaults
dependencies:
- python=3.10
- numpy
- pandas
- matplotlib
- jupyter
- pip
- pip:
- openpyxl
然后创建环境:
bash
conda env create -f environment.yml
这种方式更适合项目代码仓库。
九、完整实战:创建一个数据分析项目环境
下面用一个完整示例演示从零创建项目环境,并运行一段 Python 代码。
1. 创建项目目录
bash
mkdir conda_data_demo
cd conda_data_demo
2. 创建环境
bash
conda create -n conda_data_demo python=3.10 pandas matplotlib openpyxl jupyter
激活环境:
bash
conda activate conda_data_demo
3. 创建 Python 脚本
新建 sales_report.py:
python
from pathlib import Path
import pandas as pd
import matplotlib.pyplot as plt
def build_sales_data() -> pd.DataFrame:
data = {
"month": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
"sales": [12000, 15000, 18000, 16000, 21000, 24000],
"cost": [7000, 8200, 9600, 9100, 12000, 13500],
}
df = pd.DataFrame(data)
df["profit"] = df["sales"] - df["cost"]
return df
def save_excel(df: pd.DataFrame, output_dir: Path) -> Path:
output_dir.mkdir(exist_ok=True)
excel_path = output_dir / "sales_report.xlsx"
df.to_excel(excel_path, index=False)
return excel_path
def save_chart(df: pd.DataFrame, output_dir: Path) -> Path:
chart_path = output_dir / "sales_profit_chart.png"
plt.figure(figsize=(8, 4))
plt.plot(df["month"], df["sales"], marker="o", label="Sales")
plt.plot(df["month"], df["profit"], marker="s", label="Profit")
plt.title("Monthly Sales and Profit")
plt.xlabel("Month")
plt.ylabel("Amount")
plt.legend()
plt.tight_layout()
plt.savefig(chart_path, dpi=150)
plt.close()
return chart_path
def main() -> None:
output_dir = Path("output")
df = build_sales_data()
print("Data preview:")
print(df)
excel_path = save_excel(df, output_dir)
chart_path = save_chart(df, output_dir)
print(f"Excel saved to: {excel_path.resolve()}")
print(f"Chart saved to: {chart_path.resolve()}")
if __name__ == "__main__":
main()
4. 运行脚本
bash
python sales_report.py
运行后会生成:
text
output/sales_report.xlsx
output/sales_profit_chart.png
这就是一个典型的 Python + conda 项目开发流程:
- 为项目创建独立环境。
- 在环境中安装依赖。
- 编写代码。
- 运行并验证结果。
- 导出环境文件。
5. 导出项目环境
bash
conda env export > environment.yml
以后换电脑时,只需要项目代码和 environment.yml,就能快速恢复运行环境。
十、常见问题与避坑说明
1. conda 命令找不到
报错类似:
text
conda is not recognized as an internal or external command
常见原因:
- 没有安装 Anaconda 或 Miniconda。
- 没有使用 Anaconda Prompt。
- conda 没有加入环境变量。
Windows 初学者建议优先使用 Anaconda Prompt,不要一开始就手动改系统环境变量。
2. 激活环境失败
可以先初始化 shell:
bash
conda init
然后关闭终端,重新打开。
PowerShell 用户如果遇到权限策略问题,可以先换 Anaconda Prompt 测试,确认 conda 本身没有问题。
3. 安装包很慢
可以尝试更换镜像源,或使用 conda-forge。但不要频繁混用多个频道,否则可能引入依赖冲突。
查看当前频道:
bash
conda config --show channels
4. Solving environment 很久
安装复杂包时,conda 需要计算依赖关系,可能停在:
text
Solving environment
处理建议:
- 不要在一个环境里装太多无关包。
- 创建新环境时尽量一次性指定核心依赖。
- 尽量不要混用太多频道。
- 可以尝试新建干净环境,而不是在旧环境里反复修补。
5. pip 安装后 Python 仍然 import 不到
通常是 pip 装错环境。
检查当前 Python:
bash
python -c "import sys; print(sys.executable)"
使用当前 Python 对应的 pip 安装:
bash
python -m pip install package_name
6. 不建议长期在 base 环境开发
base 是 conda 的基础环境,建议保持干净。项目依赖应该安装到项目专属环境中:
bash
conda create -n project_env python=3.10
conda activate project_env
如果把所有包都装进 base,时间久了很容易出现版本混乱。
7. 复现别人项目时不要盲目升级
很多老项目依赖特定版本。例如:
bash
conda create -n old_project python=3.8
如果项目说明写的是 Python 3.8,就不要直接用 Python 3.12。环境配置的第一原则是先跑通,再考虑升级。
十一、常用命令速查表
| 功能 | 命令 |
|---|---|
| 查看 conda 版本 | conda --version |
| 查看 conda 信息 | conda info |
| 查看所有环境 | conda env list |
| 创建环境 | conda create -n env_name python=3.10 |
| 激活环境 | conda activate env_name |
| 退出环境 | conda deactivate |
| 删除环境 | conda remove -n env_name --all |
| 安装包 | conda install package_name |
| 指定频道安装 | conda install -c conda-forge package_name |
| 查看已安装包 | conda list |
| 更新指定包 | conda update package_name |
| 导出环境 | conda env export > environment.yml |
| 根据 yml 创建环境 | conda env create -f environment.yml |
| pip 安装包 | python -m pip install package_name |
总结
Python 编程真正进入项目阶段后,环境管理是必须掌握的基础能力。conda 的核心作用不是"安装 Python",而是帮助我们为不同项目创建独立、可控、可复现的运行环境。
建议初学者养成以下习惯:
- 一个项目一个 conda 环境。
- 不在
base环境里乱装包。 - 创建环境时明确 Python 版本。
- 优先用 conda 安装依赖,必要时再用 pip。
- 项目跑通后导出
environment.yml。 - 遇到严重依赖冲突时,优先考虑新建干净环境。
掌握这些流程后,无论是做 Python 自动化办公、数据分析、Web 开发,还是机器学习项目复现,都会少掉很多环境配置上的坑。
参考资料:
- conda 官方文档:Managing environments
- conda 官方文档:conda create command