无法创建anaconda环境ResolvePackageNotFound

时间:2018-01-25 09:07:22

标签: python anaconda conda virtual-environment

我一直在尝试使用这个yml文件创建一个环境(我创建了yml):

name: testenv
channels:
- esri
- scitools
- obspy
- conda-forge
- defaults
dependencies:
- appnope=0.1.0=py36_0
- libgfortran=3.0.0=0
- pip=9.0.1=py36_0
- python=3.6.2=0
- wheel=0.30.0=py_1
- pip:
  - ipython-genutils==0.2.0
  - jupyter-client==5.1.0
  - jupyter-console==5.1.0
  - jupyter-core==4.3.0
  - prompt-toolkit==1.0.15

然而它始终失败并显示以下错误消息:

Using Anaconda API: https://api.anaconda.org
Solving environment: failed

ResolvePackageNotFound:
  - wheel==0.30.0=py_1
  - appnope==0.1.0=py36_0

是否正在搜索错误的频道?如果我只是在基础conda安装中安装它们,我可以找到这些包。谢谢你的帮助。

3 个答案:

答案 0 :(得分:3)

问题是蟒蛇不是骗我的。这些包在linux通道中不存在,但它们确实存在于OSX通道中。所以这是一个特定于平台的问题。

答案 1 :(得分:1)

有时,在软件包版本控制中,pipanaconda做得更好。因此,在“激活”那蟒蛇环境之后,我就完成了

while read req; do conda install --yes $req || pip install $req; done < ./requirements.txt

这样,我首先使用anaconda,如果失败,请尝试pip。请注意,我建议“激活” anaconda环境,然后运行上述命令,否则会污染全局点子池。

答案 2 :(得分:1)

扩展@msamon 的回答。我有同样的错误,他们的回答解决了 90% 的问题。然而,仍然存在一些仍然无法解决的软件包。这是因为某些 Windows 安装/软件包将具有特定于 Windows 的库,而这些库当然永远不会在 Linux 上可用。

解决方案是删除版本控制值,再次运行 Conda 环境安装,然后从 .yml 中完全删除任何标记为不存在的剩余包。让 Conda 处理任何由此产生的缺失依赖项和/或重构您的代码以使用在 Linux 渠道上有发行版的不同库。

我通过 Conda4.9.2 使用 .yml 将环境从 Windows 10 机器转移到安装了 Python3.6 的 Linux 远程机器上验证了这种方法。