You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用.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直接手动搭建环境:

  1. 先创建一个空的Python2.7环境:
conda create -n deeplearningproject python=2.7 -y
  1. 激活这个环境:
conda activate deeplearningproject
  1. 先更新基础工具:
conda install pip setuptools -y
pip install --upgrade pip==9.0.1 setuptools==27.2.0
  1. 分批次安装依赖:
    • 先装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
      

这种方式更灵活,能逐个解决找不到包的问题。

方案3:处理系统级依赖的特殊情况

错误里提到的readlinezlibsqlite这类属于系统级的包,通常不需要通过conda安装——如果你的操作系统(Linux/macOS)已经自带这些库,conda会自动识别并使用。你可以把这些包从yml的依赖列表里删掉,避免不必要的报错。

最后提醒一下:Python2.7的生态已经非常过时了,如果这个机器学习指南有Python3的版本,强烈建议你切换到Python3环境,这样遇到的包兼容问题会少很多。

内容的提问来源于stack exchange,提问作者Drake Z.

火山引擎 最新活动