如何从含pip与conda包的requirements.txt创建conda环境
解决conda导入混有pip包的requirements.txt报错问题
直接用conda安装混有pip包的requirements.txt时,因为部分包仅存在于PyPI、不在conda官方频道,肯定会出现找不到包的报错。以下是无需逐个安装的批量解决方法:
方法1:用conda导出标准环境配置文件(推荐)
如果还能访问原conda环境,别用pip freeze导出requirements.txt,改用conda自带命令生成environment.yml:
conda env export > environment.yml
这个文件会自动区分conda管理的包和pip安装的包,创建新环境时直接执行:
conda env create -f environment.yml
conda会先从conda频道安装所有可识别的包,剩余包自动调用pip从PyPI安装,完全无需手动拆分。
方法2:基于现有requirements.txt批量处理
如果只有requirements.txt文件,分两步执行即可:
- 先让conda安装它能识别的包,自动跳过不存在的条目:
conda install --file requirements.txt
- 剩余未安装的包直接用pip批量安装(pip会自动跳过已安装的包):
pip install --file requirements.txt
方法3:扩展conda包源频道
很多看似只有pip版本的包,其实在conda-forge社区频道有镜像。安装时指定频道试试:
conda install -c conda-forge --file requirements.txt
conda-forge的包量远大于默认频道,能解决大部分包找不到的问题,剩余未安装的再用方法2的pip步骤补全。
方法4:用mamba替代conda提升效率
mamba是conda的替代工具,包查找和安装速度更快,对跨源包的兼容性更好:
- 先在base环境安装mamba:
conda install mamba -n base -c conda-forge
- 用mamba执行安装或环境创建:
# 从requirements.txt安装包 mamba install --file requirements.txt # 从environment.yml创建环境 mamba env create -f environment.yml
mamba能更智能地处理依赖和包源,减少找不到包的情况。
内容的提问来源于stack exchange,提问作者samsambakster
相关产品推荐
相关产品推荐

