使用.yml文件创建conda环境时遭遇依赖包无法解析问题求助
解决Conda环境创建时
ResolvePackageNotFound的问题 你遇到的核心问题在于这份deeplearningproject_environment.yml里的依赖包版本太过老旧——尤其是指定了Python 2.7.13,而Python 2.7早在2020年就停止了官方维护,绝大多数conda默认频道(比如defaults)已经下架了这些旧版本的包,导致conda根本找不到它们。
下面是几个可行的解决方案,你可以按顺序尝试:
方案1:修改YML文件,添加兼容频道并放宽版本限制
先给yml文件添加conda-forge频道(这个频道保留了更多旧版本的包),同时对部分包的版本限制做适当放宽。修改后的yml示例如下:
name: deeplearningproject channels: - conda-forge - defaults dependencies: - python=2.7 - pip - setuptools - numpy=1.12.1 - scipy=0.19.1 - gensim=2.2.0 - jupyter - ipython=5.3.0 - pip: - torchvision==0.1.8 - enum34==1.1.6 - six==1.10.0 - wheel==0.29.0
修改思路:
- 把固定到具体build号的版本(比如
python==2.7.13=0)改成只指定大版本python=2.7,让conda自动匹配可用的兼容版本 - 将conda难以找到的包移到
pip部分安装,比如torchvision、enum34这类 - 添加
conda-forge频道,优先从这里查找旧包
修改完成后重新执行命令:
conda env create -f deeplearningproject_environment.yml
方案2:手动创建空环境,逐步安装依赖
如果修改yml还是不行,可以跳过yml直接手动搭建环境:
- 先创建一个空的Python2.7环境:
conda create -n deeplearningproject python=2.7 -y
- 激活这个环境:
conda activate deeplearningproject
- 先更新基础工具:
conda install pip setuptools -y pip install --upgrade pip==9.0.1 setuptools==27.2.0
- 分批次安装依赖:
- 先装conda能找到的科学计算包:
conda install numpy=1.12.1 scipy=0.19.1 gensim=2.2.0 jupyter ipython=5.3.0 -c conda-forge -y - 再用pip安装剩下的包:
pip install torchvision==0.1.8 enum34==1.1.6 six==1.10.0 wheel==0.29.0 singledispatch==3.4.0.3 python-dateutil==2.6.0
- 先装conda能找到的科学计算包:
这种方式更灵活,能逐个解决找不到包的问题。
方案3:处理系统级依赖的特殊情况
错误里提到的readline、zlib、sqlite这类属于系统级的包,通常不需要通过conda安装——如果你的操作系统(Linux/macOS)已经自带这些库,conda会自动识别并使用。你可以把这些包从yml的依赖列表里删掉,避免不必要的报错。
最后提醒一下:Python2.7的生态已经非常过时了,如果这个机器学习指南有Python3的版本,强烈建议你切换到Python3环境,这样遇到的包兼容问题会少很多。
内容的提问来源于stack exchange,提问作者Drake Z.




