未能创建 anaconda 环境 ResolvePackageNotFound

failed to create anaconda environment ResolvePackageNotFound

我一直在尝试使用这个 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 安装中,我就可以找到这些包。感谢您的帮助。

问题是 Anaconda 没有骗我。这些软件包不存在于 linux 频道中,但它们确实存在于 OSX 频道中。所以这是一个特定于平台的问题。

有同样的问题。通过删除构建版本和包版本来解决它(除了必要的包版本,例如 python=3.6.2 和任何其他版本。)为了完全跨平台,最终的 yml 文件看起来像这样:

name: testenv
channels:
- esri
- scitools
- obspy
- conda-forge
- defaults
dependencies:
- appnope
- libgfortran
- pip
- python=3.6.2
- wheel
- pip:
  - ipython-genutils
  - jupyter-client==5.1.0
  - jupyter-console
  - jupyter-core
  - prompt-toolkit

有时发现 pip 在包版本控制方面比 anaconda 做得更好。所以在 "activating" 那个蟒蛇环境之后,我

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

这样我首先使用 anaconda,如果失败我尝试 pip。请注意,我建议 "activating" anaconda 环境然后 运行 上面的命令否则它会污染全局 pip 池。

扩展@msamon 的答案。我有同样的错误,他们的回答解决了 90% 的问题。然而,仍然有一些包裹仍然无法解决。这是因为某些 Windows installations/packages 将具有 Windows 特定的库,这些库当然永远不会在 Linux.

上可用

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

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