当前位置:首页>python>python环境|conda项目实战中使用

python环境|conda项目实战中使用

  • 2026-09-19 09:36:37
python环境|conda项目实战中使用

python环境|conda项目实战中使用

Conda 主要用于 环境隔离 和 依赖管理,确保项目在不同机器上能稳定复现

源码(conda-1目录)

https://gitee.com/kcnf-python/sample

相关步骤流程

创建项目进入目录

mkdir conda-1cd conda-1

为项目创建独立Conda环境

  • conda create -n conda-1 python=3.11 -y

激活环境

  • conda activate conda-1

安装项目所需的包

# 安装数据科学常用包conda install numpy pandas matplotlib jupyter -y# 如果某个包 conda 没有,再用 pippip install xxxx

导出环境配置

  • conda env export > environment.yml

  • conda env export --from-history > environment.yml (只导出项目依赖的,而不是整个环境)

environment.yml内容

name: conda-1channels:  - conda-forgedependencies:  -_openmp_mutex=4.5=20_gnu  - anyio=4.13.0=pyhcf101f3_0  - argon2-cffi=25.1.0=pyhd8ed1ab_0  - argon2-cffi-bindings=25.1.0=py311h3485c13_2  - arrow=1.4.0=pyhcf101f3_0  - asttokens=3.0.1=pyhd8ed1ab_0  - async-lru=2.3.0=pyhcf101f3_0  - attrs=26.1.0=pyhcf101f3_0  - babel=2.18.0=pyhcf101f3_1  - backports.zstd=1.5.0=py311h71c1bcc_0prefix: D:\pro\Python\miniforge3\envs\conda-1  

团队伙伴导入项目

  • conda env create -f environment.yml

environment.yml 和 pyproject.toml比较

维度
environment.yml
pyproject.toml
所属工具
Conda / Mamba(跨语言环境管理)
PEP 621 标准,被 pip、uv、Poetry、PDM、Hatch 等支持
主要用途
定义 Conda 环境的完整内容(Python 版本、Conda 包、pip 包、非 Python 依赖)
定义 Python 项目的元数据、运行时依赖、构建系统、开发工具配置
是否包含 Python 版本
✅ 在 dependencies 中明确列出 python=3.x
✅ 在 requires-python 字段指定版本范围(如 >=3.9)
是否包含非 Python 依赖
✅ 是(如 CUDA、OpenCV、R、C/C++ 库)
❌ 否(仅限 Python 包)
依赖声明方式
直接列出包名和版本(可精确或宽松)
遵循 PEP 508,可指定版本范围、环境标记等
锁定文件
可选:conda env export 可生成精确版本的环境文件
外部工具生成锁文件:uv.lock、poetry.lock、requirements.lock
构建系统配置
❌ 不涉及
✅ 通过 [build-system] 指定构建后端(setuptools, poetry-core 等)
工具配置
❌ 不支持
✅ 通过 [tool.*] 统一配置 black、ruff、pytest、mypy 等
跨平台可复现性
较好(但不同 OS 可能有细微差异)
较好(结合锁文件可实现精确复现)
典型文件名
environment.ymlpyproject.toml
主要使用场景
数据科学、机器学习、需要复杂二进制依赖的项目
通用 Python 项目(Web、库、脚本、应用)

两种不同demo对比

  • environment.yml (Conda)

    name:ml_projectchannels:-conda-forge-pytorchdependencies:-python=3.10-pytorch=2.0-cudatoolkit=11.8# 非 Python 依赖-numpy=1.24-pandas>=2.0-pip-pip:-transformers-datasets
  • pyproject.toml (Python 标准)

    [project]name = "ml_project"version = "0.1.0"description = "An ML project"requires-python = ">=3.10"dependencies = ["numpy>=1.24","pandas>=2.0","transformers","datasets",][build-system]requires = ["setuptools>=61.0"]build-backend = "setuptools.build_meta"[tool.black]line-length = 88[tool.pytest.ini_options]testpaths = ["tests"]

如何配合

  • 只用environment.yml(传统 Conda 工作流)

    • 适合:项目依赖复杂二进制库(CUDA、OpenCV、GDAL 等)

    • 缺点:不提供标准的 Python 项目元数据,打包发布困难

  • pyproject.toml + uv/poetry(现代纯 Python 工作流)

    • 适合:纯 Python 项目,无非 Python 依赖

    • 操作:uv venv → uv pip install -e . 或 poetry install

    • 优点:标准化、工具链统一、快速

  • 两者结合使用(推荐用于复杂项目)

    • environment.yml 负责:定义 Conda 环境(Python 版本 + 非 Python 依赖 + pip + 项目本身的可编辑安装)

    • pyproject.toml 负责:定义项目的元数据、纯 Python 依赖、工具配置

点下方的“❤”支持下,非常感谢!

●python本地环境搭建,pip管理

●python venv 虚拟环境的创建

●python window下面uv安装和使用

●python 如何一次性安装项目所有依赖包(pip和uv)

●python环境|pip|uv|venv|Conda区别

●python环境|pip安装|pip镜像使用

●python环境|conda安装和使用(1)

●python环境|conda安装和使用(2)

最新文章

随机文章