如何导出conda环境的顶层依赖包(含pip安装的软件包)
Conda导出含pip包的顶层依赖方案
最优方案(适用于conda 23.10及以上版本)
最新版conda已经原生支持该需求,直接执行以下命令即可一步导出:
conda env export --from-history --include-pip --no-builds -f environment.yml
参数说明:
--from-history:仅导出手动安装的conda顶层依赖,不包含下层依赖--include-pip:同步导出环境中所有通过pip安装的包--no-builds:去掉依赖的build号,提升跨操作系统/架构的兼容性
旧版本conda兼容方案
如果你的conda版本低于23.10,无法使用--include-pip参数,可以通过两步手动组合实现:
- 先导出conda侧的顶层依赖
conda env export --from-history --no-builds > environment.yml
- 导出pip侧的依赖并补入配置文件
- 若不需要严格筛选pip侧的顶层依赖,直接导出所有pip安装的包:
Windows系统无grep命令的话,可以手动导出pip列表后删除conda、pip、setuptools、wheel等系统内置包条目即可。pip list --format=freeze | grep -vE '^(conda|pkg-resources|wheel|setuptools|pip)' > pip_pkgs.txt - 若需要仅导出pip侧手动安装的顶层依赖,可先安装
pip-chill工具:pip install pip-chill pip-chill --no-version | grep -vE '^(pip|setuptools|wheel)' > pip_pkgs.txt
- 若不需要严格筛选pip侧的顶层依赖,直接导出所有pip安装的包:
- 编辑
environment.yml,在dependencies节点的末尾添加pip依赖区块,将pip_pkgs.txt中的内容粘贴到该区块下即可,示例格式如下:name: your_env_name channels: - defaults - conda-forge dependencies: - python=3.10 - numpy - pandas - pip: - requests==2.31.0 - tqdm==4.66.1
内容的提问来源于stack exchange,提问作者chicony
相关产品推荐
相关产品推荐

