文章目录
问题描述问题分析解决方法参考资料
问题描述
今天在调试论文的代码时,需要创建anaconda环境,按照GitHub上给的指定进行环境的创建。却一直报Solving environment: failed 和 ResolvePackageNotFound的错误。如下图所示:
问题分析
期初以为时镜像源的问题,又重新添加了进行源,还是没有解决。网上的好多资料都是通过添加镜像源去解决,然而并不能解决我的这个问题。还有说通过
conda update -n base conda
去升级conda base,也进行了尝试。然而升级超级慢不说,也没有解决我的问题。 最后通过对问题的进一步定位,又查了好久的资料,终于在一篇博客中找到了解决方法。
原来这是因为用那条命令(conda env create -f environment.yml )进行创建环境时,所用的配置文件里是带有配置信息的。环境配置文件是在别的机器上导出的,文件里的软件包是按照导出文件的机器配置的,因此导出的时候,把这些包的详细信息也导了出来,即第二个等号后面跟着的信息,当我们按照这个文件创建环境时,conda就会根据我们机器的配置信息,按照配置文件里包的详细信息,去找这个包,那当然找不到,结果发现“查无此包”,因此也就会报上面的错误。
解决方法
上面找到了问题的所在之处,解决起来就很简单了,只需要在配置文件 environment.yml 中将包的详细信息删除,也就是第二个等号后面的内容。 原先的 environment.yml 是下图这样
将dependencies中的包,第二个等号后面的内容全部删除,如下图所示:
修改完之后,进行保存。再次创建环境。 注意:此时可能还是会有部分包报 ResolvePackageNotFound 的错误,这个可以先将这些在配置文件 environment.yml 里删除,再创建环境,此时肯定是可以创建成功的。等运行代码时,哪里用到了这些包,再用 pip 进行单独安装。