当我运行以下命令时:
conda env create -f virtual_platform_mac.yml
我收到此错误
Collecting package metadata (repodata.json): done
Solving environment: failed
ResolvePackageNotFound:
- pytables==3.4.2=np113py35_0
- h5py==2.7.0=np113py35_0
- anaconda==custom=py35_0
我该如何解决?
我正在Mac OS X上工作。
答案 0 :(得分:2)
Conda v4.7 dropped a branch of the Anaconda Cloud repository called the free channel是为了提高求解性能。不幸的是,这包括许多以前的软件包,这些软件包从未移植到保留的存储库分支中。此处失败的需求受此影响。
free
频道搜索 Conda提供了一种通过restore_free_channel
配置选项恢复对存储库这一部分的访问的方法。您可以通过查看
conda search pytables=3.4.2[build=np113py35_0]
失败,而
CONDA_RESTORE_FREE_CHANNEL=1 conda search pytables=3.4.2[build=np113py35_0]
成功找到了包,其他包也找到了
。如果您希望经常需要较旧的软件包,则可以全局设置该选项,然后继续安装:
conda config --set restore_free_channel true
conda env create -f virtual_platform_mac.yml
与所有Conda配置选项一样,您也可以使用相应的环境变量仅针对以下命令临时恢复访问:
Unix / Linux
CONDA_RESTORE_FREE_CHANNEL=1 conda env create -f virtual_platform_mac.yml
Windows
SET CONDA_RESTORE_FREE_CHANNEL=1
conda env create -f virtual_platform_mac.yaml
(是的,我意识到..._mac.yaml
的认知失调,但Windows用户也需要帮助。)
如果您有一个特定的环境,但您始终希望访问免费频道,但又不想全局设置此选项,则可以仅针对环境设置配置选项。
conda activate my_env
conda config --env --set restore_free_channel true
可以通过分别在放置在CONDA_RESTORE_FREE_CHANNEL
和etc/conda/activate.d
文件夹中的脚本中设置和取消设置etc/conda/deactivate.d
变量来实现类似的效果。参见the documentation for an example。
答案 1 :(得分:0)
可以解释另一种解决方案here。基本上,如果您将 environment.yml
文件导入不同的操作系统(例如,从 macOS 到 Windows),您将收到构建错误。
解决方案是使用标志“--no-buils”,但它并不能保证environment.yml
实际上是兼容的。一些图书馆,例如libgfortran
,在 Anaconda 的 Windows 频道上找不到(请参阅 here)。
答案 2 :(得分:-1)
我会用
CONDA_RESTORE_FREE_CHANNEL=1 conda env create -f
继续使用过期/较旧的软件包