安装Anaconda时,如果依赖问题阻止了使用"conda update"命令更新模块的*最新绝对*版本,有没有办法指示呢?

18
我最近发现我的numpy安装包(在MacOS上,使用anaconda)过时了,是1.11.x版本,而不是最新的1.12.0版本。当我尝试运行网站上记录的函数时,它无法找到。当我键入conda update numpy时,会提示我该安装包已经是最新的版本。
最终,在尝试强制运行conda install numpy=1.12.0后,出现了一个错误提示,表明有依赖性问题--原来我的astropy安装包(我甚至没有使用过)需要numpy 1.11.x版本。卸载astropy并安装numpy后,成功升级到1.12.0版本。
令我困扰的是,anaconda没有任何提示,说明它由于依赖性问题而忽略了最新的numpy版本。有没有一种通过强制方式显示某种警告或标志的方法呢?
编辑:从这个GitHub问题线程中,我看到目前似乎没有本地化的实现方式。虽然可能开发人员添加这个功能之前,可以使用稍微hacky的BASH脚本的方式去完成,例如查询可用的最新版本,然后进行比较和安装两个版本的字符串。
2个回答

1
您正在询问是否有可能编写代码,扫描environment.yml的每一行,并报告foo的“foo=X.Y.Z”版本是否最新,忽略文件中的其他依赖项(如astropy),这些依赖项可能会发生冲突并因此阻止其更新。
是的。
编写一个脚本,迭代每个包行,使用一个环境.yml(甚至没有该文件)拆除并重新构建全新的环境,并在隔离状态下安装最新版本。读取结果版本,与目标环境.yml进行比较,并报告任何不匹配情况。如果您编写了一个有用的脚本,请在此处发布。

0

我实际上会说,使用pip而不是conda也可以解决这个问题。 当使用pip install --upgrade <package_name>升级包时,它会将其升级到与您的OS和Python版本兼容的最新版本。 但是,如果此升级导致安装的软件包不再兼容,pip将发出警告并告诉您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接