使用Conda进行批量软件包更新

216

有没有办法(使用conda update)列出已过时的包并选择或批量更新Anaconda中(兼容的)软件包?

单独更新这些软件包没有多大意义,因为它们有数百个。

4个回答

358
你想要执行conda update --allconda search --outdated会显示已过时的包,conda update --all将对它们进行更新(请注意,后者不会将你从Python 2更新到Python 3,但如果你使用Python 2,前者会显示Python已过时)。

不要忘记将 conda 添加到您的路径中,export PATH=~/anaconda/bin:$PATH - tashuhka
10
conda search --outdated命令会列出所有已安装且过时的软件包的所有可用版本,这在许多情况下太过繁琐。我个人更喜欢使用conda update --all命令,它会显示将要安装的内容并提示确认:如果你回复“N”,则会得到一个精简的过时软件包列表。 - gboffi
4
conda update --allconda search --outdated不同之处在于它会通过解决器运行,这意味着如果其他软件包有依赖限制,一些拥有新版本的软件包可能不会被更新(或者例如conda update --all无法将Python 2.7更新到Python 3.4)。 - asmeurer
运行命令行 conda update anaconda(或者 conda update --all)和在 Anaconda Navigator -> Environments -> 选择 Upgradable 并手动应用升级,是否相同来更新 Anaconda 包?谢谢。 - Celdor
1
我刚刚发现了这篇博客,作者Jake VanderPlas在其中解释了关于_Anaconda_和conda的一些术语。它回答了我许多疑问。 - Celdor
显示剩余5条评论

15

如果您很长时间没有更新过conda,请在继续执行conda update --all命令之前,先使用conda update conda命令更新conda。这种情况曾经发生在我身上(Python 2.7.13 on Anaconda 64 bits)。


64位,您是指? - akarthik10
1
至少来说,这可能更适合作为评论而不是答案。 - Chill2Macht
3
"这种事情发生在我身上了", 那么,你遇到了什么事情? - gerrit

2

10
这个答案回复了这个问题的哪些方面? - Tiago Cogumbreiro

1
# list packages that can be updated
conda search --outdated

# update all packages prompted(by asking the user yes/no)
conda update --all

# update all packages unprompted
conda update --all -y

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