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 里,会带来几个问题:
- 不同项目依赖的 Python 版本不同。
- 不同项目依赖的第三方库版本不同。
- 新安装的包可能破坏旧项目。
- 复现别人项目时,很难保证版本一致。
- 数据分析、深度学习相关库依赖较多,手动处理会比较麻烦。
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 Prompt或Miniconda 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>这表示后续执行的python、pip、conda install都会作用在当前环境中。
2. 查看当前 Python 路径
Windows:
where pythonLinux/macOS:
whichpython也可以进入 Python 查看版本:
python--version3. 退出当前环境
conda deactivate4. 查看所有环境
condaenvlist5. 删除环境
如果某个环境不再使用,可以删除:
conda remove-npy310_demo--all或者:
condaenvremove-npy310_demo删除前一定确认环境名,避免删错。
六、安装第三方包
1. 使用 conda 安装包
先激活环境:
conda activate data_env安装pandas:
condainstallpandas安装指定版本:
condainstallpandas=2.2同时安装多个包:
condainstallnumpy pandas matplotlib seaborn2. 使用 conda-forge 频道
有些包在默认频道版本较旧,或者找不到,可以使用conda-forge:
condainstall-cconda-forge package_name例如:
condainstall-cconda-forge opencv也可以把conda-forge加入频道配置:
conda config--addchannels conda-forge conda config--setchannel_priority strict3. 查看已安装包
conda list查看某个包:
conda list pandas4. 更新包
conda update pandas更新当前环境中所有包:
conda update--all实际项目中不建议随便执行conda update --all,因为它可能导致项目依赖版本变化。更稳妥的做法是只更新需要的包。
七、conda 与 pip 如何配合使用
很多人会问:已经有 conda 了,还能不能用 pip?
答案是可以,但要注意顺序。
推荐原则:
- 能用 conda 安装的包,优先用 conda。
- conda 找不到的包,再用 pip。
- pip 操作前一定先激活目标环境。
- 不要在 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_env3. 更简洁的 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_demo2. 创建环境
conda create-nconda_data_demopython=3.10pandas matplotlib openpyxl jupyter激活环境:
conda activate conda_data_demo3. 创建 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 项目开发流程:
- 为项目创建独立环境。
- 在环境中安装依赖。
- 编写代码。
- 运行并验证结果。
- 导出环境文件。
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--showchannels4. Solving environment 很久
安装复杂包时,conda 需要计算依赖关系,可能停在:
Solving environment处理建议:
- 不要在一个环境里装太多无关包。
- 创建新环境时尽量一次性指定核心依赖。
- 尽量不要混用太多频道。
- 可以尝试新建干净环境,而不是在旧环境里反复修补。
5. pip 安装后 Python 仍然 import 不到
通常是 pip 装错环境。
检查当前 Python:
python-c"import sys; print(sys.executable)"使用当前 Python 对应的 pip 安装:
python-mpipinstallpackage_name6. 不建议长期在 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”,而是帮助我们为不同项目创建独立、可控、可复现的运行环境。
建议初学者养成以下习惯:
- 一个项目一个 conda 环境。
- 不在
base环境里乱装包。 - 创建环境时明确 Python 版本。
- 优先用 conda 安装依赖,必要时再用 pip。
- 项目跑通后导出
environment.yml。 - 遇到严重依赖冲突时,优先考虑新建干净环境。
掌握这些流程后,无论是做 Python 自动化办公、数据分析、Web 开发,还是机器学习项目复现,都会少掉很多环境配置上的坑。
参考资料:
- conda 官方文档:Managing environments
- conda 官方文档:conda create command
