创建Conda环境时如何排除本地开发专用依赖包?
Conda环境依赖分离方案
方案1:拆分基础+扩展依赖文件(推荐)
完全避免公共依赖不同步的问题,不需要重复维护配置:
- 把生产环境公共依赖单独存为
environment_base.yml
name: blah channels: - conda-forge dependencies: - python=3.9 - psychopg2
- 开发专属依赖单独存为
environment_dev.yml,不需要重复写公共内容
dependencies: - jupyter - ipykernel - folium
- 不同场景用不同命令创建环境即可:
- 生产环境:
conda env create -f environment_base.yml - 本地开发环境:
conda env create -f environment_base.yml -f environment_dev.yml
Conda加载多个配置文件时会自动合并依赖项,后加载的配置会覆盖前配置的同名字段,只要开发配置只加额外依赖就不会有冲突。
方案2:创建环境时直接排除指定包
如果你不想拆分文件,Conda 4.10及以上版本支持--exclude参数,直接从配置文件中排除不需要的包:
生产环境创建命令:
conda env create -f environment.yml --exclude jupyter --exclude ipykernel --exclude folium
该方案适合开发依赖较少的场景,依赖较多时命令会冗余,且要注意排除的包没有被公共依赖间接引用,避免出现依赖缺失问题。
内容的提问来源于stack exchange,提问作者Brendan Hill
相关产品推荐
相关产品推荐

