Python 与 Conda 编程实战指南:从环境配置到项目运行完整入门

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 里,会带来几个问题:

  1. 不同项目依赖的 Python 版本不同。
  2. 不同项目依赖的第三方库版本不同。
  3. 新安装的包可能破坏旧项目。
  4. 复现别人项目时,很难保证版本一致。
  5. 数据分析、深度学习相关库依赖较多,手动处理会比较麻烦。

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 PromptMiniconda 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>

这表示后续执行的 pythonpipconda 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?

答案是可以,但要注意顺序。

推荐原则:

  1. 能用 conda 安装的包,优先用 conda。
  2. conda 找不到的包,再用 pip。
  3. pip 操作前一定先激活目标环境。
  4. 不要在 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 项目开发流程:

  1. 为项目创建独立环境。
  2. 在环境中安装依赖。
  3. 编写代码。
  4. 运行并验证结果。
  5. 导出环境文件。

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",而是帮助我们为不同项目创建独立、可控、可复现的运行环境。

建议初学者养成以下习惯:

  1. 一个项目一个 conda 环境。
  2. 不在 base 环境里乱装包。
  3. 创建环境时明确 Python 版本。
  4. 优先用 conda 安装依赖,必要时再用 pip。
  5. 项目跑通后导出 environment.yml
  6. 遇到严重依赖冲突时,优先考虑新建干净环境。

掌握这些流程后,无论是做 Python 自动化办公、数据分析、Web 开发,还是机器学习项目复现,都会少掉很多环境配置上的坑。

参考资料:

  • conda 官方文档:Managing environments
  • conda 官方文档:conda create command
相关推荐
Csvn1 小时前
日志系统
后端·python
2401_846339561 小时前
html标签如何表示计量值_meter标签使用条件【方法】
jvm·数据库·python
Randyliu1 小时前
20260511-Pydantic和SQLalchemy
后端·python
yexuhgu1 小时前
如何为禁用按钮点击添加提示文案
jvm·数据库·python
水木流年追梦1 小时前
大模型入门-应用篇1-prompt技术
开发语言·python·算法·prompt
莫生灬灬1 小时前
ElementUI封装 共91个组件 支持易语言/火山/C#/Python
开发语言·c++·python·ui·elementui·c#
WL_Aurora1 小时前
【每日一题】位运算
python·算法
duke8692672141 小时前
JavaScript数组扁平化flat与flatMap处理嵌套数据
jvm·数据库·python
Brilliantwxx1 小时前
【C++】stack_queue与deque模版(模拟实现+认识+对比)
开发语言·c++·笔记·算法·list