我的电脑上安装了Anaconda,我想更新它。在Navigator中,我可以看到有几个单独的包可以更新,但是还有一个anaconda
包,它有时有一个版本号,有时说是custom
。我该如何进行?
root
是主环境的旧名称(pre conda 4.4);在conda 4.4之后,它被重命名为base
。来源
在大多数情况下,当您说要更新Anaconda时,您要做的是执行以下命令:
conda update --all
(但这应该在conda更新-n base conda
之前进行,以便安装最新的conda
版本)
这将把当前环境中的所有包更新为最新版本——小字是它可能会使用一些包的旧版本以满足依赖性约束(通常这是不必要的,必要时包计划求解器将尽最大努力将影响降至最低)。
这需要从命令行执行,最好的方法是从Anaconda Navigator,然后是“环境”选项卡,然后单击“代码”基础“/代码”环境旁边的三角形,选择“打开终端”:
此操作将只更新一个选定的环境(在本例中为base
环境)。如果您有其他要更新的环境,可以重复上述过程,但首先单击环境。选中后,右侧有一个三角形标记(参见上图,步骤3)。或者在命令行中,您可以提供环境名称(-n envname
)或路径(-p/path/to/env
),例如从上面的屏幕截图更新您的dspyr
环境:
conda update -n dspyr --all
如果你只对更新一个单独的包感兴趣,那么只需点击导航器中的蓝色箭头或蓝色版本号,例如上面截图中的astroid
或astropy
,这将标记这些包进行升级。完成后,您需要单击“应用”按钮:
或从命令行:
conda update astroid astropy
如果您不关心软件包的版本,只希望“标准Anaconda发行版中所有软件包的最新集合,只要它们一起工作”,那么您应该看看这个要点。
在大多数情况下,更新软件包列表中的Anaconda软件包会产生令人惊讶的结果:您实际上可能会降级许多软件包(事实上,如果它将版本指示为custom
,则很可能会降级)。以上要点提供了详细信息。
您的base
环境可能不是尝试和管理一组精确的包的好地方:它将是一个动态的工作空间,安装新的包并随机更新包。如果您需要一组精确的包,那么创建一个conda环境来保存它们。由于conda包缓存和文件链接的使用方式,这样做通常是i)快速的,ii)消耗很少的额外磁盘空间。例如。
conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk
conda文档提供了更多细节和示例。
这些都不会帮助更新通过pip
从PyPI安装的包或使用python安装的任何包setup.py安装
。conda list
将为您提供一些关于您在环境中拥有的基于pip的Python包,但它不会做任何特殊的事情来更新它们。
这几乎完全是同一个故事,唯一的例外是,如果基本环境是由其他人安装的(比如to
/opt/anaconda/latest
),您可能无法更新它。如果无法更新正在使用的环境,则应能够克隆然后更新:
conda create -n myenv --clone base
conda update -n myenv --all
如果您试图将Anaconda版本更新为新版本,您会注意到运行新安装程序无法工作,因为它会抱怨安装目录不为空。
因此,您应该使用conda进行升级,如官方文档所述:
conda update conda
conda update anaconda
这可以防止错误:
错误conda.core.link:_execute(502):卸载包默认::conda-4.5.4-py36_0时发生错误。PermissionError(13,'访问被拒绝')
打开"命令或conda提示符"并运行:
conda update conda
conda update anaconda
最好运行两个命令两次(一个接一个),以确保所有的基本文件都更新了。
这应该会让你回到最新的“版本”,其中包含由连续体工作人员选择的可以很好地一起工作的包。
如果希望运行每个包的最后版本(这可能导致环境不稳定):
conda update --all
希望这有帮助。
资料来源: