我的电脑上已经安装了蟒蛇,我想更新一下。在Navigator中,我可以看到有几个单独的包可以更新,但也有一个anaconda包,有时有版本号,有时说自定义。我该怎么做?


当前回答

我用的是Windows 10。以下更新了所有内容,并安装了一些新包,包括Python更新(对我来说是3.7.3)。

在shell中,尝试以下操作(请确保更改Anaconda 3 Data的安装位置)。更新所有内容都需要一些时间。

conda update --prefix X:\XXXXData\Anaconda3 anaconda

其他回答

如果您试图将Anaconda版本更新到新的版本,您将注意到运行新的安装程序将无法工作,因为它会提示安装目录非空。

所以你应该按照官方文档的详细说明使用conda来升级:

conda update conda
conda update anaconda

在Windows中,如果您进行了“针对所有用户”的安装,则可能需要从具有管理员权限的Anaconda提示符运行。

这可以防止错误:

错误conda.core.link:_execute(502):卸载包'defaults::conda-4.5.4-py36_0'时发生错误。 PermissionError(13, '访问被拒绝')

然而,另一个答案是:

conda update -n base conda -c anaconda

其中-c您的首选通道或直接省略。

从这里复制

我还尝试使用conda install -n base anaconda=2022.10更新anaconda,但这导致冲突,表明我的python版本太低(3.6)。

我最终设法更新使用以下命令:

conda install -n base anaconda=2022.10 python=3.8

最新的anaconda版本代码可以在发布说明中找到。

(在此期间,我还使用conda install—rev 0重置了我的基本环境,但不确定这是必要的。在任何情况下,当尝试这样做时,要意识到可能的后果!)

如果你有困难,例如从3.3。X到4。X (conda更新conda“不工作”以获得下一个版本)而不是尝试更具体的方法,如下所示:

conda install conda=4.0 (or conda install anaconda=4.0)

https://www.anaconda.com/blog/developer-blog/anaconda-4-release/

您应该知道您在做什么,因为强制安装可能会导致conda崩溃。 如果你想获得更多的灵活性/安全性,你可以使用像nix(-pkgs) [with nix-shell] / NixOS这样的pkg-manager。

Root是主环境的旧名称(conda 4.4之前);在conda 4.4之后,它被重命名为base。源

95%的人真正想要的

在大多数情况下,当你说你想要更新Anaconda时,你想做的是执行以下命令:

conda update --all

(但是在此之前应该加上conda update -n base conda或conda update conda,这样你就安装了最新的conda版本)

这将把当前环境中的所有包更新到最新版本——有一个小字体,它可能会使用一些包的旧版本,以满足依赖约束(通常这是不必要的,当有必要时,包计划求解器将尽最大努力减少影响)。

这需要从命令行执行,最好的方法是从Anaconda Navigator,然后是“环境”选项卡,然后点击基础环境旁边的三角形,选择“打开终端”:

此操作将只更新一个选定的环境(在本例中为基本环境)。如果您有其他想要更新的环境,您可以重复上述过程,但首先单击该环境。当它被选中时,右边有一个三角形标记(见上图,步骤3)。或者从命令行中,你可以提供环境名称(-n envname)或路径(-p /path/to/env),例如从上面的截图更新你的dspyr环境:

conda update -n dspyr --all

更新单个包

如果你只对更新单个包感兴趣,那么只需单击Navigator中的蓝色箭头或蓝色版本号,例如上图截图中的星状线或星状线,这将标记这些包进行升级。当你完成后,你需要点击“应用”按钮:

或者从命令行:

conda update astroid astropy

仅更新标准Anaconda发行版中的包

如果您不关心包的版本,只想要“标准Anaconda发行版中所有包的最新集,只要它们一起工作”,那么您应该看看这个要点。

为什么更新Anaconda包几乎总是一个坏主意

在大多数情况下,更新包列表中的Anaconda包会有一个令人惊讶的结果:您实际上可能会降级许多包(事实上,如果它指示版本为自定义,则很可能会降级)。上面的要点提供了细节。

利用conda环境

您的基本环境可能不适合尝试和管理确切的包集:它将是一个动态的工作空间,其中安装了新包,并随机更新包。如果您需要一组确切的包,那么创建一个conda环境来保存它们。多亏了conda包缓存和使用文件链接的方式,做到这一点通常是i)快速和ii)消耗很少的额外磁盘空间。如。

conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk

conda文档有更多细节和示例。

pip, PyPI和setuptools?

这些都不会帮助更新已经通过pip从PyPI安装的包或任何使用python setup.py install安装的包。conda list会给你一些关于环境中基于pip的Python包的提示,但它不会做任何特殊的事情来更新它们。

水蟒或水蟒企业的商业用途

这几乎是完全相同的故事,除了你可能无法更新基础环境,如果它是由其他人安装的(比如/opt/anaconda/latest)。如果你不能更新你正在使用的环境,你应该能够克隆,然后更新:

conda create -n myenv --clone base
conda update -n myenv --all