当前位置: 首页 > news >正文

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 本身可以直接安装第三方库,例如:

pipinstallrequests pipinstallpandas

但在多项目开发时,直接把所有库都装到系统 Python 里,会带来几个问题:

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

conda 可以为每个项目创建独立环境。例如:

conda create-ndata_demopython=3.10conda 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 是否可用

打开终端后输入:

conda--version

如果能看到类似输出,说明 conda 已经安装成功:

conda24.9.2

查看 conda 详细信息:

conda info

查看当前已有环境:

condaenvlist

或者:

conda info--envs

输出中带*的环境表示当前正在使用的环境。

四、创建 Python 虚拟环境

1. 创建指定 Python 版本的环境

创建一个名为py310_demo的环境,并指定 Python 版本为 3.10:

conda create-npy310_demopython=3.10

执行过程中,conda 会列出需要安装的包,并询问是否继续:

Proceed([y]/n)?

输入:

y

即可继续安装。

2. 创建环境时同时安装常用库

例如创建数据分析环境:

conda create-ndata_envpython=3.10numpy pandas matplotlib jupyter

这种方式比先创建环境、再一个个安装包更省事,也能减少部分依赖冲突。

3. 环境命名建议

环境名建议简单、明确:

conda create-nspider_envpython=3.10conda create-ndata_envpython=3.10conda create-ntorch_envpython=3.10

不建议使用中文、空格或过长名称。

五、激活、退出、查看和删除环境

1. 激活环境

conda activate py310_demo

激活成功后,命令行前面通常会出现环境名:

(py310_demo)C:\Users\yourname>

这表示后续执行的pythonpipconda install都会作用在当前环境中。

2. 查看当前 Python 路径

Windows:

where python

Linux/macOS:

whichpython

也可以进入 Python 查看版本:

python--version

3. 退出当前环境

conda deactivate

4. 查看所有环境

condaenvlist

5. 删除环境

如果某个环境不再使用,可以删除:

conda remove-npy310_demo--all

或者:

condaenvremove-npy310_demo

删除前一定确认环境名,避免删错。

六、安装第三方包

1. 使用 conda 安装包

先激活环境:

conda activate data_env

安装pandas

condainstallpandas

安装指定版本:

condainstallpandas=2.2

同时安装多个包:

condainstallnumpy pandas matplotlib seaborn

2. 使用 conda-forge 频道

有些包在默认频道版本较旧,或者找不到,可以使用conda-forge

condainstall-cconda-forge package_name

例如:

condainstall-cconda-forge opencv

也可以把conda-forge加入频道配置:

conda config--addchannels conda-forge conda config--setchannel_priority strict

3. 查看已安装包

conda list

查看某个包:

conda list pandas

4. 更新包

conda update pandas

更新当前环境中所有包:

conda update--all

实际项目中不建议随便执行conda update --all,因为它可能导致项目依赖版本变化。更稳妥的做法是只更新需要的包。

七、conda 与 pip 如何配合使用

很多人会问:已经有 conda 了,还能不能用 pip?

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

推荐原则:

  1. 能用 conda 安装的包,优先用 conda。
  2. conda 找不到的包,再用 pip。
  3. pip 操作前一定先激活目标环境。
  4. 不要在 base 环境里乱装项目依赖。

示例:

conda activate spider_env condainstallrequests beautifulsoup4 pipinstallfake-useragent

检查 pip 是否属于当前环境:

where pip

或者:

python-mpip--version

更推荐使用:

python-mpipinstallpackage_name

这样可以避免系统里存在多个pip时装错位置。

八、导出和复现项目环境

当一个项目可以正常运行后,建议导出环境文件,方便以后迁移或给别人复现。

1. 导出 environment.yml

先激活环境:

conda activate data_env

导出:

condaenvexport>environment.yml

这个文件会记录环境名、频道、conda 包和 pip 包。

2. 根据 environment.yml 创建环境

别人拿到项目后,可以执行:

condaenvcreate-fenvironment.yml

创建完成后激活:

conda activate data_env

3. 更简洁的 environment.yml 写法

有时自动导出的文件包含很多平台相关依赖,不利于跨电脑复现。可以手动写一个更简洁的版本:

name:data_envchannels:-conda-forge-defaultsdependencies:-python=3.10-numpy-pandas-matplotlib-jupyter-pip-pip:-openpyxl

然后创建环境:

condaenvcreate-fenvironment.yml

这种方式更适合项目代码仓库。

九、完整实战:创建一个数据分析项目环境

下面用一个完整示例演示从零创建项目环境,并运行一段 Python 代码。

1. 创建项目目录

mkdirconda_data_democdconda_data_demo

2. 创建环境

conda create-nconda_data_demopython=3.10pandas matplotlib openpyxl jupyter

激活环境:

conda activate conda_data_demo

3. 创建 Python 脚本

新建sales_report.py

frompathlibimportPathimportpandasaspdimportmatplotlib.pyplotaspltdefbuild_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"]returndfdefsave_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)returnexcel_pathdefsave_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()returnchart_pathdefmain()->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. 运行脚本

python sales_report.py

运行后会生成:

output/sales_report.xlsx output/sales_profit_chart.png

这就是一个典型的 Python + conda 项目开发流程:

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

5. 导出项目环境

condaenvexport>environment.yml

以后换电脑时,只需要项目代码和environment.yml,就能快速恢复运行环境。

十、常见问题与避坑说明

1. conda 命令找不到

报错类似:

conda is not recognized as an internal or external command

常见原因:

  • 没有安装 Anaconda 或 Miniconda。
  • 没有使用 Anaconda Prompt。
  • conda 没有加入环境变量。

Windows 初学者建议优先使用Anaconda Prompt,不要一开始就手动改系统环境变量。

2. 激活环境失败

可以先初始化 shell:

conda init

然后关闭终端,重新打开。

PowerShell 用户如果遇到权限策略问题,可以先换 Anaconda Prompt 测试,确认 conda 本身没有问题。

3. 安装包很慢

可以尝试更换镜像源,或使用conda-forge。但不要频繁混用多个频道,否则可能引入依赖冲突。

查看当前频道:

conda config--showchannels

4. Solving environment 很久

安装复杂包时,conda 需要计算依赖关系,可能停在:

Solving environment

处理建议:

  • 不要在一个环境里装太多无关包。
  • 创建新环境时尽量一次性指定核心依赖。
  • 尽量不要混用太多频道。
  • 可以尝试新建干净环境,而不是在旧环境里反复修补。

5. pip 安装后 Python 仍然 import 不到

通常是 pip 装错环境。

检查当前 Python:

python-c"import sys; print(sys.executable)"

使用当前 Python 对应的 pip 安装:

python-mpipinstallpackage_name

6. 不建议长期在 base 环境开发

base是 conda 的基础环境,建议保持干净。项目依赖应该安装到项目专属环境中:

conda create-nproject_envpython=3.10conda activate project_env

如果把所有包都装进base,时间久了很容易出现版本混乱。

7. 复现别人项目时不要盲目升级

很多老项目依赖特定版本。例如:

conda create-nold_projectpython=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
http://www.jsqmd.com/news/800044/

相关文章:

  • 3步解锁B站缓存视频:m4s无损转MP4的终极解决方案
  • 工业视觉YOLO检测框偏移问题:Letterbox预处理与坐标系转换
  • STM32软硬件SPI驱动MAX31865实现PT100高精度测温与Shell交互
  • LetsFG开源项目:本地化AI智能体航班搜索与预订引擎实战指南
  • 告别网络盲区:用RTL8811CU让旧笔记本变身Linux双频WiFi网卡/AP二合一网关
  • Godot引擎开发实战:高效利用代码食谱仓库加速游戏原型设计
  • 语义理解 查询时
  • ARM A64指令集SBFIZ位域操作详解与应用
  • 【Excel提效 No.069】一句话搞定正则表达式批量替换文本(保护个人敏感信息)
  • DOL-CHS-MODS开源项目本地化与个性化配置指南
  • 3步搞定!用LaTeX2Word-Equation让网页公式在Word中完美重生
  • 容器技术从入门到精通:Docker核心概念、Dockerfile与生产实践全解析
  • 2026年值得关注的AI模型接口中转系统推荐:为开发者和企业提供全面权威的选型指南
  • 【c++面向对象编程】第5篇:类与对象(四):赋值运算符重载
  • Spring Boot全栈项目架构解析:从分层设计到容器化部署
  • 生命体AI产品有什么特点
  • 无人机雷达穿透植被监测土壤湿度技术解析
  • 2026新疆靠谱变频器厂家精选:变频器厂家推荐本地生产/售后无忧 - 栗子测评
  • Antigravity技能目录:从信息过载到技能发现的探索引擎
  • 陈,脑切片模具 大鼠脑切片模具 小鼠脑切片模具
  • 腾讯位置服务开发者征文大赛:“独行侠”智能路线官
  • 功能开关与远程配置:现代Web应用安全发布与动态控制实践
  • 防爆风机哪家好?2026高温风机厂家推荐:离心风机/高压风机生产厂家+防腐风机厂家合集 - 栗子测评
  • 别再乱写SDC了!ICC II里Mode、Corner、Scenario约束文件分离的实战技巧与内存优化
  • IrDA OBEX文件传输技术解析与Microchip实现
  • 热电模块技术原理与PCR温度控制应用
  • selection.js:简化DOM文本选区管理的轻量级JavaScript库
  • 轻量级GraphRAG实现:nano-graphrag核心原理与定制指南
  • Viterbi 算法直接用在中文分词上
  • 别再乱调了!大漠模块SetKeypadDelay/SetMouseDelay参数详解与实战避坑(易语言)