我一直在尝试使用这个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安装中安装它们,我可以找到这些包。谢谢你的帮助。
答案 0 :(得分:3)
问题是蟒蛇不是骗我的。这些包在linux通道中不存在,但它们确实存在于OSX通道中。所以这是一个特定于平台的问题。
答案 1 :(得分:1)
有时,在软件包版本控制中,pip
比anaconda
做得更好。因此,在“激活”那蟒蛇环境之后,我就完成了
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 远程机器上验证了这种方法。