root 是主环境的旧名称(conda 4.4 之前);在 conda 4.4 之后,它被重命名为 base。资源
95%的人真正想要什么
在大多数情况下,当您说要更新 Anaconda 时,您要做的是执行以下命令:
conda update --all
(但这应该在 conda update -n base conda
之前,以便您安装最新的 conda
版本)
这会将当前环境中的所有包更新到最新版本 - 小字是它可能使用某些包的旧版本以满足依赖约束(通常这不是必需的,当有必要时包计划求解器将尽最大努力将影响降至最低)。
这需要从命令行执行,最好的方法是从 Anaconda Navigator,然后是“Environments”选项卡,然后单击 base
环境旁边的三角形,选择“Open Terminal”:
https://i.stack.imgur.com/6JjBC.png
此操作只会更新一个选定的环境(在本例中为 base
环境)。如果您有其他想要更新的环境,您可以重复上述过程,但首先单击环境。当它被选中时,右侧有一个三角形标记(见上图,第 3 步)。或者,您可以从命令行提供环境名称 (-n envname
) 或路径 (-p /path/to/env
),例如从上面的屏幕截图更新您的 dspyr
环境:
conda update -n dspyr --all
更新单个包
如果您只对更新单个软件包感兴趣,那么只需单击导航器中的蓝色箭头或蓝色版本号,例如上面屏幕截图中的 astroid
或 astropy
,这将标记这些软件包以进行升级。完成后,您需要单击“应用”按钮:
https://i.stack.imgur.com/wB5bx.png
或者从命令行:
conda update astroid astropy
仅更新标准 Anaconda 发行版中的软件包
如果您不关心软件包版本,而只想“标准 Anaconda 发行版中所有软件包的最新集合,只要它们一起工作”,那么您应该take a look at this gist。
为什么更新 Anaconda 包几乎总是一个坏主意
在大多数情况下,更新软件包列表中的 Anaconda 软件包会产生令人惊讶的结果:您实际上可能降级许多软件包(事实上,如果它指示版本为 custom
,这很可能)。上面的要点提供了详细信息。
利用 conda 环境
您的 base
环境可能不是尝试和管理一组确切软件包的好地方:它将是一个动态工作空间,其中安装了新软件包并随机更新了软件包。如果您需要一组精确的包,请创建一个 conda 环境来保存它们。由于 conda 包缓存和使用文件链接的方式,这样做通常是 i) 快速且 ii) 消耗的额外磁盘空间非常少。例如
conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk
conda documentation 包含更多详细信息和示例。
pip、PyPI 和 setuptools?
这些都无助于更新通过 pip
从 PyPI 安装的软件包或使用 python setup.py install
安装的任何软件包。 conda list
将为您提供一些关于您在环境中拥有的基于 pip 的 Python 包的提示,但它不会做任何特别的更新来更新它们。
Anaconda 或 Anaconda Enterprise 的商业用途
情况几乎完全相同,只是如果 base
环境是由其他人安装的(比如 /opt/anaconda/latest
),您可能无法更新它。如果您无法更新您正在使用的环境,您应该能够克隆然后更新:
conda create -n myenv --clone base
conda update -n myenv --all
如果您尝试将 Anaconda 版本更新为新版本,您会注意到运行新的安装程序将不起作用,因为它抱怨安装目录非空。
因此,您应该使用 conda 进行升级,如 official docs 所述:
conda update conda
conda update anaconda
https://i.stack.imgur.com/d6RVb.png
这可以防止错误:
错误 conda.core.link:_execute(502):卸载包“defaults::conda-4.5.4-py36_0”时出错。 PermissionError(13, '访问被拒绝')
conda update conda
后跟 conda install anaconda=VersionNumber
进行更新,而不是使用 conda update anaconda
。请参阅 other answer of this same question。或者如果您省略 VersionNumber
并且是 install
= update
,它会自动安装最新版本吗?
conda install anaconda=2021.05
(测试时可用的最新元包版本)更新后,我再次使用此答案的 conda update anaconda
进行了更新。后者将安装 13 个新软件包并更新大约 100 个软件包。只有 anaconda 本身会“降级”,但之所以这样称呼,是因为它更改为自定义版本:The following packages will be DOWNGRADED: anaconda 2021.05-py38_0 --> custom-py38_1
。因此,conda update anaconda
为您提供最新的包集合。 conda install anaconda
安装较少。
打开“命令或 conda 提示符”并运行:
conda update conda
conda update anaconda
最好同时运行这两个命令两次(一个接一个)以确保所有基本文件都已更新。
这应该让您回到最新的“版本”,其中包含由 Continuum 的人员选择的可以很好地协同工作的包。
如果您希望每个包的最后一个版本运行(这可能会导致环境不稳定):
conda update --all
希望这可以帮助。
资料来源:
https://docs.anaconda.com/anaconda/install/update-version
https://github.com/conda/conda/issues/1414#issuecomment-119071154
conda update anaconda
应该让您回到其中一个“版本”,其中包含由 Continuum 的人员选择的可以很好地协同工作的软件包.
conda install anaconda
。
conda update conda
后跟 conda install anaconda=VersionNumber
进行更新,而不是使用 conda update anaconda
。请参阅 other answer of this same question。或者如果您省略 VersionNumber
并且是 install
= update
,它会自动安装最新版本吗?
这是 official Anaconda documentation 的建议:
conda update conda
conda install anaconda=2021.11
您可以找到当前和过去的版本代码 here。
该命令将更新到 Anaconda 元包的特定版本。
我觉得(与接受的答案中的说法相反)这更像是 95% 的 Anaconda 用户想要恕我直言:升级到最新版本的 Anaconda 元包(由 Anaconda 分销商组合和测试)并忽略各个软件包的更新状态,将由 conda update --all
发布。
conda install anaconda=2021.05
(测试时可用的最新元包版本)更新后,我再次用另一个答案的 conda update anaconda
更新。后者将安装 13 个新软件包并更新大约 100 个软件包。只有 anaconda 本身会“降级”,但之所以这样称呼,是因为它更改为自定义版本:The following packages will be DOWNGRADED: anaconda 2021.05-py38_0 --> custom-py38_1
。因此,conda update anaconda
为您提供最新的(自定义)集合。
=version
这样添加的版本,那么这是唯一真正坚持 Updating from older versions 官方指南的答案。如果您需要查找最新版本,您也可以在 available Anaconda versions 中搜索并在版本名称处将其剪切:Anaconda3-2021.05-Windows-x86_64.exe
变为 2021.05
。而且看似旧的 2021.05
仍然是 09/2021 的最新 release 版本,因此可能有几个月的历史。
这是最佳实践(以我的卑微经验)。选择这四个包还会将所有其他依赖项更新到适当的版本,这将帮助您保持环境的一致性。后者是其他人在之前的回复中表达的常见问题。此解决方案不需要终端。
https://i.stack.imgur.com/K2TXu.png
在基本模式下打开 Anaconda cmd:
然后使用 conda update conda 来更新 Anaconda。
然后,您可以使用 conda update --all 更新 Anaconda 的所有要求:
conda update conda
conda update --all
如果您无法从 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 可能会因强制安装而中断。如果您想获得更多的灵活性/安全性,您可以使用 pkg-manager,例如 nix(-pkgs) [with nix-shell] / NixOS。
conda update --all
打破了一切,正如他们自己的常见问题解答所说,在我的例子中,它很乐意将我的 python 从 3.7.0 降级到 3.6.6(尽管它知道 3.7.1 可用)
我正在使用 Windows 10。以下内容会更新所有内容并安装一些新软件包,包括 Python 更新(对我来说是 3.7.3)。
在 shell 中,尝试以下操作(确保更改 Anaconda 3 Data 的安装位置)。更新所有内容需要一些时间。
conda update --prefix X:\XXXXData\Anaconda3 anaconda
要将已安装的版本更新到最新版本,例如 2019.07,请运行:
conda install anaconda=2019.07
在大多数情况下,这种方法可以满足您的需求并避免依赖问题。
介绍
这个答案包含了许多答案和评论,它没有添加新代码,所有学分都归于其他答案,尤其是this answer that shows how to install the official release, fully in line with the docs。
在下文中,“文档”是指 Updating from older versions 上的 Anaconda 官方文档。阅读文档很有意义,这是一个简短的概述。
由于它会经常使用,这里是 definition of metapackage:
元包是一个非常简单的包,它至少有一个名称和一个版本。它不需要任何依赖项或构建步骤。元包可能会列出对几个核心、低级库的依赖关系,并且可能包含指向在执行时自动下载的软件文件的链接。
第一步
作为安装 anaconda 之前的第一步,您更新 conda:
conda update conda
第二步
第二步,您有三个选择:自定义或官方元数据包,或 conda update --all
。
1.自定义元包
如果您被允许拥有最新的自定义元包(请注意,对于具有受限依赖项的标准包,这可能并不总是最佳选择),那么您可以使用
conda install anaconda
文件:
Anaconda 元包有一个特殊的“自定义”版本,它具有所有包依赖项,但它们都不受限制。 “自定义”版本的版本排序低于任何实际版本号。
测试的起点是已安装的版本 2021.05
。此后,conda update anaconda
和 conda install anaconda
都导致 custom-py38_1
的新“降级自定义版本”,请参见代码块底部:anaconda
的版本更改 = 2021.05-py38_0 --> custom-py38_1
。但是在这里使用 update
会导致安装的软件包比 install
多得多:
更新导致比安装更多的安装步骤
(base) C:\WINDOWS\system32>conda update anaconda
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\Users\toeft\anaconda3
added / updated specs:
- anaconda
The following packages will be downloaded:
package | build
---------------------------|-----------------
_anaconda_depends-2020.07 | py38_0 6 KB
anaconda-custom | py38_1 36 KB
anaconda-client-1.8.0 | py38haa95532_0 170 KB
anaconda-project-0.10.1 | pyhd3eb1b0_0 218 KB
astroid-2.6.6 | py38haa95532_0 314 KB
astropy-4.3.1 | py38hc7d831d_0 6.1 MB
attrs-21.2.0 | pyhd3eb1b0_0 46 KB
babel-2.9.1 | pyhd3eb1b0_0 5.5 MB
...
xlsxwriter-3.0.1 | pyhd3eb1b0_0 111 KB
xlwings-0.24.7 | py38haa95532_0 887 KB
zeromq-4.3.4 | hd77b12b_0 4.2 MB
zipp-3.5.0 | pyhd3eb1b0_0 13 KB
zope.interface-5.4.0 | py38h2bbff1b_0 305 KB
zstd-1.4.9 | h19a0ad4_0 478 KB
------------------------------------------------------------
Total: 218.2 MB
The following NEW packages will be INSTALLED:
_anaconda_depends pkgs/main/win-64::_anaconda_depends-2020.07-py38_0
cfitsio pkgs/main/win-64::cfitsio-3.470-he774522_6
charset-normalizer pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0
conda-pack pkgs/main/noarch::conda-pack-0.6.0-pyhd3eb1b0_0
debugpy pkgs/main/win-64::debugpy-1.4.1-py38hd77b12b_0
fonttools pkgs/main/noarch::fonttools-4.25.0-pyhd3eb1b0_0
gmpy2 pkgs/main/win-64::gmpy2-2.0.8-py38h7edee0f_3
libllvm9 pkgs/main/win-64::libllvm9-9.0.1-h21ff451_0
matplotlib-inline pkgs/main/noarch::matplotlib-inline-0.1.2-pyhd3eb1b0_2
mpc pkgs/main/win-64::mpc-1.1.0-h7edee0f_1
mpfr pkgs/main/win-64::mpfr-4.0.2-h62dcd97_1
mpir pkgs/main/win-64::mpir-3.0.0-hec2e145_1
munkres pkgs/main/noarch::munkres-1.1.4-py_0
The following packages will be REMOVED:
jupyter-packaging-0.7.12-pyhd3eb1b0_0
The following packages will be UPDATED:
anaconda-client 1.7.2-py38_0 --> 1.8.0-py38haa95532_0
anaconda-project 0.9.1-pyhd3eb1b0_1 --> 0.10.1-pyhd3eb1b0_0
astroid 2.5-py38haa95532_1 --> 2.6.6-py38haa95532_0
astropy 4.2.1-py38h2bbff1b_1 --> 4.3.1-py38hc7d831d_0
attrs 20.3.0-pyhd3eb1b0_0 --> 21.2.0-pyhd3eb1b0_0
babel 2.9.0-pyhd3eb1b0_0 --> 2.9.1-pyhd3eb1b0_0
bitarray 1.9.2-py38h2bbff1b_1 --> 2.3.0-py38h2bbff1b_1
bleach 3.3.0-pyhd3eb1b0_0 --> 4.0.0-pyhd3eb1b0_0
bokeh 2.3.2-py38haa95532_0 --> 2.3.3-py38haa95532_0
ca-certificates 2021.4.13-haa95532_1 --> 2021.7.5-haa95532_1
certifi 2020.12.5-py38haa95532_0 --> 2021.5.30-py38haa95532_0
cffi 1.14.5-py38hcd4344a_0 --> 1.14.6-py38h2bbff1b_0
click 7.1.2-pyhd3eb1b0_0 --> 8.0.1-pyhd3eb1b0_0
comtypes 1.1.9-py38haa95532_1002 --> 1.1.10-py38haa95532_1002
curl 7.71.1-h2a8f88b_1 --> 7.78.0-h86230a5_0
cython 0.29.23-py38hd77b12b_0 --> 0.29.24-py38hd77b12b_0
dask 2021.4.0-pyhd3eb1b0_0 --> 2021.8.1-pyhd3eb1b0_0
dask-core 2021.4.0-pyhd3eb1b0_0 --> 2021.8.1-pyhd3eb1b0_0
decorator 5.0.6-pyhd3eb1b0_0 --> 5.0.9-pyhd3eb1b0_0
distributed 2021.4.0-py38haa95532_0 --> 2021.8.1-py38haa95532_0
docutils 0.17-py38haa95532_1 --> 0.17.1-py38haa95532_1
et_xmlfile pkgs/main/noarch::et_xmlfile-1.0.1-py~ --> pkgs/main/win-64::et_xmlfile-1.1.0-py38haa95532_0
fsspec 0.9.0-pyhd3eb1b0_0 --> 2021.7.0-pyhd3eb1b0_0
gevent 21.1.2-py38h2bbff1b_1 --> 21.8.0-py38h2bbff1b_1
greenlet 1.0.0-py38hd77b12b_2 --> 1.1.1-py38hd77b12b_0
idna 2.10-pyhd3eb1b0_0 --> 3.2-pyhd3eb1b0_0
imagecodecs 2021.3.31-py38h5da4933_0 --> 2021.6.8-py38h5da4933_0
intel-openmp 2021.2.0-haa95532_616 --> 2021.3.0-haa95532_3372
ipykernel 5.3.4-py38h5ca1d4c_0 --> 6.2.0-py38haa95532_1
ipython 7.22.0-py38hd4e2768_0 --> 7.26.0-py38hd4e2768_0
isort 5.8.0-pyhd3eb1b0_0 --> 5.9.3-pyhd3eb1b0_0
itsdangerous 1.1.0-pyhd3eb1b0_0 --> 2.0.1-pyhd3eb1b0_0
jinja2 2.11.3-pyhd3eb1b0_0 --> 3.0.1-pyhd3eb1b0_0
json5 0.9.5-py_0 --> 0.9.6-pyhd3eb1b0_0
jupyterlab 3.0.14-pyhd3eb1b0_1 --> 3.1.7-pyhd3eb1b0_0
jupyterlab_server 2.4.0-pyhd3eb1b0_0 --> 2.7.1-pyhd3eb1b0_0
keyring 22.3.0-py38haa95532_0 --> 23.0.1-py38haa95532_0
krb5 1.18.2-hc04afaa_0 --> 1.19.2-h5b6d351_0
libcurl 7.71.1-h2a8f88b_1 --> 7.78.0-h86230a5_0
libxml2 2.9.10-hb89e7f3_3 --> 2.9.12-h0ad7f3c_0
lz4-c 1.9.3-h2bbff1b_0 --> 1.9.3-h2bbff1b_1
markupsafe 1.1.1-py38he774522_0 --> 2.0.1-py38h2bbff1b_0
matplotlib 3.3.4-py38haa95532_0 --> 3.4.2-py38haa95532_0
matplotlib-base 3.3.4-py38h49ac443_0 --> 3.4.2-py38h49ac443_0
mkl 2021.2.0-haa95532_296 --> 2021.3.0-haa95532_524
mkl-service 2.3.0-py38h2bbff1b_1 --> 2.4.0-py38h2bbff1b_0
mkl_random 1.2.1-py38hf11a4ad_2 --> 1.2.2-py38hf11a4ad_0
more-itertools 8.7.0-pyhd3eb1b0_0 --> 8.8.0-pyhd3eb1b0_0
nbconvert 6.0.7-py38_0 --> 6.1.0-py38haa95532_0
networkx 2.5-py_0 --> 2.6.2-pyhd3eb1b0_0
nltk 3.6.1-pyhd3eb1b0_0 --> 3.6.2-pyhd3eb1b0_0
notebook 6.3.0-py38haa95532_0 --> 6.4.3-py38haa95532_0
numpy 1.20.1-py38h34a8a5c_0 --> 1.20.3-py38ha4e8547_0
numpy-base 1.20.1-py38haf7ebc8_0 --> 1.20.3-py38hc2deb75_0
openjpeg 2.3.0-h5ec785f_1 --> 2.4.0-h4fc8c34_0
openssl 1.1.1k-h2bbff1b_0 --> 1.1.1l-h2bbff1b_0
packaging 20.9-pyhd3eb1b0_0 --> 21.0-pyhd3eb1b0_0
pandas 1.2.4-py38hd77b12b_0 --> 1.3.2-py38h6214cd6_0
path 15.1.2-py38haa95532_0 --> 16.0.0-py38haa95532_0
pathlib2 2.3.5-py38haa95532_2 --> 2.3.6-py38haa95532_2
pillow 8.2.0-py38h4fa10fc_0 --> 8.3.1-py38h4fa10fc_0
pkginfo 1.7.0-py38haa95532_0 --> 1.7.1-py38haa95532_0
prometheus_client 0.10.1-pyhd3eb1b0_0 --> 0.11.0-pyhd3eb1b0_0
pydocstyle 6.0.0-pyhd3eb1b0_0 --> 6.1.1-pyhd3eb1b0_0
pyerfa 1.7.3-py38h2bbff1b_0 --> 2.0.0-py38h2bbff1b_0
pygments 2.8.1-pyhd3eb1b0_0 --> 2.10.0-pyhd3eb1b0_0
pylint 2.7.4-py38haa95532_1 --> 2.9.6-py38haa95532_1
pyodbc 4.0.30-py38ha925a31_0 --> 4.0.31-py38hd77b12b_0
pytest 6.2.3-py38haa95532_2 --> 6.2.4-py38haa95532_2
python-dateutil 2.8.1-pyhd3eb1b0_0 --> 2.8.2-pyhd3eb1b0_0
pywin32 227-py38he774522_1 --> 228-py38hbaba5e8_1
pyzmq 20.0.0-py38hd77b12b_1 --> 22.2.1-py38hd77b12b_1
qtconsole 5.0.3-pyhd3eb1b0_0 --> 5.1.0-pyhd3eb1b0_0
qtpy 1.9.0-py_0 --> 1.10.0-pyhd3eb1b0_0
regex 2021.4.4-py38h2bbff1b_0 --> 2021.8.3-py38h2bbff1b_0
requests 2.25.1-pyhd3eb1b0_0 --> 2.26.0-pyhd3eb1b0_0
rope 0.18.0-py_0 --> 0.19.0-pyhd3eb1b0_0
scikit-learn 0.24.1-py38hf11a4ad_0 --> 0.24.2-py38hf11a4ad_1
seaborn 0.11.1-pyhd3eb1b0_0 --> 0.11.2-pyhd3eb1b0_0
singledispatch 3.6.1-pyhd3eb1b0_1001 --> 3.7.0-pyhd3eb1b0_1001
six pkgs/main/win-64::six-1.15.0-py38haa9~ --> pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sortedcontainers 2.3.0-pyhd3eb1b0_0 --> 2.4.0-pyhd3eb1b0_0
sphinx 4.0.1-pyhd3eb1b0_0 --> 4.0.2-pyhd3eb1b0_0
sphinxcontrib-htm~ 1.0.3-pyhd3eb1b0_0 --> 2.0.0-pyhd3eb1b0_0
sphinxcontrib-ser~ 1.1.4-pyhd3eb1b0_0 --> 1.1.5-pyhd3eb1b0_0
sqlalchemy 1.4.7-py38h2bbff1b_0 --> 1.4.22-py38h2bbff1b_0
sqlite 3.35.4-h2bbff1b_0 --> 3.36.0-h2bbff1b_0
testpath 0.4.4-pyhd3eb1b0_0 --> 0.5.0-pyhd3eb1b0_0
threadpoolctl 2.1.0-pyh5ca1d4c_0 --> 2.2.0-pyhbf3da8f_0
tifffile 2021.4.8-pyhd3eb1b0_2 --> 2021.7.2-pyhd3eb1b0_2
tqdm 4.59.0-pyhd3eb1b0_1 --> 4.62.1-pyhd3eb1b0_1
typed-ast 1.4.2-py38h2bbff1b_1 --> 1.4.3-py38h2bbff1b_1
typing_extensions 3.7.4.3-pyha847dfd_0 --> 3.10.0.0-pyh06a4308_0
urllib3 1.26.4-pyhd3eb1b0_0 --> 1.26.6-pyhd3eb1b0_1
wheel 0.36.2-pyhd3eb1b0_0 --> 0.37.0-pyhd3eb1b0_0
xlsxwriter 1.3.8-pyhd3eb1b0_0 --> 3.0.1-pyhd3eb1b0_0
xlwings 0.23.0-py38haa95532_0 --> 0.24.7-py38haa95532_0
zeromq 4.3.3-ha925a31_3 --> 4.3.4-hd77b12b_0
zipp 3.4.1-pyhd3eb1b0_0 --> 3.5.0-pyhd3eb1b0_0
zope.interface 5.3.0-py38h2bbff1b_0 --> 5.4.0-py38h2bbff1b_0
zstd 1.4.5-h04227a9_0 --> 1.4.9-h19a0ad4_0
The following packages will be DOWNGRADED:
anaconda 2021.05-py38_0 --> custom-py38_1
install 导致安装步骤少于更新:
(base) C:\WINDOWS\system32>conda install anaconda
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\Users\toeft\anaconda3
added / updated specs:
- anaconda
The following packages will be downloaded:
package | build
---------------------------|-----------------
_anaconda_depends-2020.07 | py38_0 6 KB
anaconda-custom | py38_1 36 KB
ca-certificates-2021.7.5 | haa95532_1 113 KB
certifi-2021.5.30 | py38haa95532_0 140 KB
gmpy2-2.0.8 | py38h7edee0f_3 145 KB
libllvm9-9.0.1 | h21ff451_0 61 KB
mpc-1.1.0 | h7edee0f_1 260 KB
mpfr-4.0.2 | h62dcd97_1 1.5 MB
mpir-3.0.0 | hec2e145_1 1.3 MB
openssl-1.1.1l | h2bbff1b_0 4.8 MB
------------------------------------------------------------
Total: 8.4 MB
The following NEW packages will be INSTALLED:
_anaconda_depends pkgs/main/win-64::_anaconda_depends-2020.07-py38_0
gmpy2 pkgs/main/win-64::gmpy2-2.0.8-py38h7edee0f_3
libllvm9 pkgs/main/win-64::libllvm9-9.0.1-h21ff451_0
mpc pkgs/main/win-64::mpc-1.1.0-h7edee0f_1
mpfr pkgs/main/win-64::mpfr-4.0.2-h62dcd97_1
mpir pkgs/main/win-64::mpir-3.0.0-hec2e145_1
The following packages will be UPDATED:
ca-certificates 2021.4.13-haa95532_1 --> 2021.7.5-haa95532_1
certifi 2020.12.5-py38haa95532_0 --> 2021.5.30-py38haa95532_0
openssl 1.1.1k-h2bbff1b_0 --> 1.1.1l-h2bbff1b_0
The following packages will be DOWNGRADED:
anaconda 2021.05-py38_0 --> custom-py38_1
2.官方元包(=发布)
在以下代码片段中,update
和 install
导致相同的结果。我在文档中使用 install
。
如果您不想安装元包的自定义版本,而是需要最新的官方版本,请安装
conda install anaconda=VersionNumber
查找版本号
在撰写本文时,2021 年 9 月,最新可用版本(Anaconda 个人版)是
conda install anaconda=2021.05
但是如何获得这个VersionNumber
?
看看 Anaconda Release notes of the individual edition。如果您需要旧版本,则需要向下滚动该页面,例如找到 2020.11
。最新的总是在页面的顶部。如果您使用商业版,则需要查看其他发行说明。
因此,2021.05
版本代码之类的内容是您需要找到的最新发布快捷方式。您还可以在文档中直接链接的 available Anaconda versions 列表中找到您的操作系统的完整版本名称,例如 Anaconda3-2021.05-Windows-x86_64.exe
。它按名称和日期排序,因此,您需要搜索年份,如“YYYY-MM”/“YYYY-”或滚动整个列表以查找最新版本:
https://i.stack.imgur.com/Kfi9u.png
对于 Windows 10 64 位的示例,该命令也可以是:
conda update anaconda=Anaconda3-2021.05-Windows-x86_64.exe
如果您在安装了最新的自定义元包后安装了一个版本,您会看到一些包被删除并且相当多的包被轻微降级。这是因为该版本的时间稍早一些,但因此也完全受信任。
文件:
conda update anaconda=VersionNumber 获取 Anaconda 元包的特定版本,例如 conda update anaconda=2019.10。该元包表示已作为集合进行测试的固定状态。
3. 不要使用 conda update --all
至于文档(下面引用的最后一句),安装 2019.07
的 custom(= 最近的)元包也可以通过运行来完成
conda update --all
如果你有虚拟环境,你需要:
conda update -n myenv --all
YET:这可能是 2019.07
的一个例外。它似乎不适用于更高的元包版本。我在逐行比较中检查了 conda update --all
与 conda update anaconda
的差异(见下文,引用后)。虽然一开始它们看起来像双胞胎,但有足够的小差异表明您应该把手放在 conda update --all
上,因为文档中甚至提到了可能的冲突约束。
文件:
conda update --all 将取消固定所有内容。这会将当前环境中的所有包更新到最新版本。这样做时,它会从历史记录中删除所有版本限制,并尝试使所有内容尽可能新。这与删除包具有相同的行为。如果任何包被更新孤立,它们将被删除。 conda update --all 可能无法使所有内容都成为最新版本,因为您的环境中可能存在冲突的约束。使用 Anaconda 2019.07 更新的 Anaconda 元包, conda update --all 将使元包转到自定义版本以更新其他规范。
整个输出,在一行到一行的基础上相互对比,揭示了以下剩余的行差异。这证明 conda update --all
不仅仅是自定义元包:
conda update --在 conda update anaconda 中找不到所有输出行
(base) C:\WINDOWS\system32>conda update --all
The following packages will be downloaded:
anaconda-navigator-2.0.4 | py38_0 5.2 MB
conda-build-3.21.4 | py38haa95532_0 552 KB
conda-content-trust-0.1.1 | pyhd3eb1b0_0 56 KB
conda-repo-cli-1.0.4 | pyhd3eb1b0_0 47 KB
conda-token-0.3.0 | pyhd3eb1b0_0 10 KB
menuinst-1.4.17 | py38h59b6b97_0 96 KB
python-3.8.11 | h6244533_1 16.0 MB
Total: 224.8 MB
The following NEW packages will be INSTALLED:
conda-content-tru~ pkgs/main/noarch::conda-content-trust-0.1.1-pyhd3eb1b0_0
conda-repo-cli pkgs/main/noarch::conda-repo-cli-1.0.4-pyhd3eb1b0_0
conda-token pkgs/main/noarch::conda-token-0.3.0-pyhd3eb1b0_0
The following packages will be UPDATED:
anaconda-navigator 1.10.0-py38_0 --> 2.0.4-py38_0
conda-build 3.20.5-py38_1 --> 3.21.4-py38haa95532_0
et_xmlfile pkgs/main/noarch::et_xmlfile-1.0.1-py~ --> pkgs/main/win-64::et_xmlfile-1.1.0-py38haa95532_0
menuinst 1.4.16-py38he774522_1 --> 1.4.17-py38h59b6b97_0
python 3.8.8-hdbf39b2_5 --> 3.8.11-h6244533_1
six pkgs/main/win-64::six-1.15.0-py38haa9~ --> pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sphinxcontrib-htm~ 1.0.3-pyhd3eb1b0_0 --> 2.0.0-pyhd3eb1b0_0
sphinxcontrib-ser~ 1.1.4-pyhd3eb1b0_0 --> 1.1.5-pyhd3eb1b0_0
在 conda update --all 中找不到 conda update anaconda 输出行
(base) C:\WINDOWS\system32>conda update anaconda
added / updated specs:
- anaconda
The following packages will be downloaded:
cfitsio-3.470 | he774522_6 512 KB
imagecodecs-2021.6.8 | py38h5da4933_0 6.1 MB
jinja2-3.0.1 | pyhd3eb1b0_0 110 KB
tifffile-2021.7.2 | pyhd3eb1b0_2 135 KB
typed-ast-1.4.3 | py38h2bbff1b_1 135 KB
Total: 209.8 MB
The following NEW packages will be INSTALLED:
cfitsio pkgs/main/win-64::cfitsio-3.470-he774522_6
The following packages will be UPDATED:
et_xmlfile pkgs/main/noarch::et_xmlfile-1.0.1-py~ --> pkgs/main/win-64::et_xmlfile-1.1.0-py38haa95532_0
imagecodecs 2021.3.31-py38h5da4933_0 --> 2021.6.8-py38h5da4933_0
jinja2 2.11.3-pyhd3eb1b0_0 --> 3.0.1-pyhd3eb1b0_0
six pkgs/main/win-64::six-1.15.0-py38haa9~ --> pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sphinxcontrib-htm~ 1.0.3-pyhd3eb1b0_0 --> 2.0.0-pyhd3eb1b0_0
sphinxcontrib-ser~ 1.1.4-pyhd3eb1b0_0 --> 1.1.5-pyhd3eb1b0_0
tifffile 2021.4.8-pyhd3eb1b0_2 --> 2021.7.2-pyhd3eb1b0_2
typed-ast 1.4.2-py38h2bbff1b_1 --> 1.4.3-py38h2bbff1b_1
因此,不建议使用 conda update --all
,如果您需要尽可能高的更新,最好坚持使用自定义元包,或者如果您可以延迟几个月并且最好使用没有任何冲突的包集合,请使用官方元包重要(例如,如果您在生产环境中)。
结果:安装哪个:官方或自定义元包?
一些answers or comments说自定义元包安装可能需要运行两次才能达到正确的状态。我无法确认这一点(使用 conda install anaconda
和 conda update anaconda
进行了测试,但我也在全新的 Python 安装中)。这仍然暗示安装最新的官方元包(= 发布,conda install anaconda=VersionNumber
= conda update anaconda=VersionNumber
)可能会更稳定,这可能会延迟几个月。
另一方面,如果您想要最新版本可用,自定义元包(最新的受信任包集合)可能会很好。然后运行 conda install anaconda
或更强大的命令 conda update anaconda
。
这也是更新 Spyder 的方式:
https://i.stack.imgur.com/ikcqi.png
他们甚至没有在 conda update anaconda
之前使用 conda update conda
,后者似乎就足够了。
小“证明”:我一开始用conda update conda
,后来conda update anaconda
无事可做,conda update conda
完成了所有任务。
conda update anaconda
Collecting package metadata (current_repodata.json): done Solving environment: done
# All requested packages already installed.
这再次听起来好像两个命令现在都是一样的,也许它们只是在过去不一样。
选择取决于您,这取决于您需要更新某些软件包的紧迫程度。只需启动安装程序看看会发生什么,您仍然可以输入 n
取消安装。我要拿
conda update anaconda
没有 conda update conda
。
除非您需要某个软件包的最新更新,例如作为要安装另一个软件包的要求,否则不要使用 conda update --all
。我在测试 --all
时遇到了这个问题,只是在那之后,才建议下载一个新的 tensorflow 插件,但不是在其他命令之后。通常,您不需要了解最新情况,因此不要使用 --all
。
在 Mac 上,打开终端并运行以下两个命令。
conda update conda
conda update anaconda
确保多次运行每个命令以更新到当前版本。
利用:
conda create -n py37 -c anaconda anaconda=5.3.1
conda env export -n py37 --file env.yaml
在 C:\Windows\System32
中找到 env.yaml 文件并以管理员身份运行 cmd:
conda env update -n root -f env.yaml
然后它起作用了!
这只能更新 Python 实例:
conda update python
conda update conda
。 Conda 在过去一年里有了很大的发展,特别是我们在 2017 年 9 月下旬发布了一个版本,引入了很多改进。如果conda update --all
破坏了一些东西(从历史上看,它几乎肯定会这样做)那么这是一个错误,您应该向 conda GitHub 问题跟踪器报告 - 今天该操作不应破坏任何现有组件(附带条件 conda 需要是最新的)。conda update -n root conda
而不是上面提到的才能让它工作。conda update --all
不是 95% 的人想要的。它可能导致不稳定的环境。 user3056882 的回答更安全。conda update --all
因“权限被拒绝”错误而失败。以管理员权限成功运行它。以管理员权限运行:开始 >蟒蛇3>蟒蛇提示 >右键>更多 >以管理员身份运行。spyder
开发人员是 saying the exact opposite of this:“一般来说,使用conda update --all
不是一个好主意”和 here:“要使用 conda 执行更新(强烈推荐),只需运行conda update anaconda
,然后运行conda update spyder
"