我的电脑上已经安装了蟒蛇,我想更新一下。在Navigator中,我可以看到有几个单独的包可以更新,但也有一个anaconda包,有时有版本号,有时说自定义。我该怎么做?
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
如果您试图将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提示符”并运行:
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
如果你有困难,例如从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。
在Mac上,打开终端,执行以下两个命令。
conda update conda
conda update anaconda
确保多次运行每个命令以更新到当前版本。
以下是最佳实践(根据我的个人经验)。选择这四个包还会将所有其他依赖项更新到适当的版本,这将帮助您保持环境的一致性。后者是其他人在早先的答复中表示的一个普遍问题。这个解决方案不需要终端。
Use:
conda create -n py37 -c anaconda anaconda=5.3.1
conda env export -n py37 --file env.yaml
定位环境。在C:\Windows\System32目录下运行yaml文件,以管理员身份运行cmd:
conda env update -n root -f env.yaml
那么它就有用了!
我用的是Windows 10。以下更新了所有内容,并安装了一些新包,包括Python更新(对我来说是3.7.3)。
在shell中,尝试以下操作(请确保更改Anaconda 3 Data的安装位置)。更新所有内容都需要一些时间。
conda update --prefix X:\XXXXData\Anaconda3 anaconda
要将已安装的版本更新到最新版本,例如2019.07,请运行:
conda install anaconda=2019.07
在大多数情况下,这种方法可以满足您的需求并避免依赖关系问题。
这是Anaconda官方文档的建议:
conda update conda
conda install anaconda=2021.11
您可以在这里找到当前和过去的版本代码。
该命令将更新到Anaconda元包的特定版本。
我觉得(与公认的答案相反),这是95%的Anaconda用户想要的:升级到Anaconda元包的最新版本(由Anaconda分销商组装和测试),忽略单个包的更新状态,这将由conda update发布——所有。
在基本模式下打开Anaconda cmd:
然后使用conda update conda来更新Anaconda。
然后你可以使用conda update——all来更新Anaconda的所有需求:
conda update conda
conda update --all
介绍
这个答案包含了许多答案和评论,它没有添加新的代码,所有的功劳都归于其他的答案,尤其是这个回答,它展示了如何安装官方版本,完全符合文档。
在下面,“文档”是指从旧版本更新的官方Anaconda文档。阅读文档是有意义的,它是一个简短的概述。
由于它将被经常使用,下面是元包的定义:
元包是一个非常简单的包,它至少有一个名称和一个 的版本。它不需要有任何依赖项或构建步骤。 元包可以列出对几个核心、低级别的依赖关系 类库,并可能包含指向的软件文件的链接 执行时自动下载。
第一步
作为安装anaconda之前的第一步,你更新conda:
conda update conda
第二步
第二步,您有三个选择:自定义或官方元包,或conda更新——全部。
1. 自定义metapackage
如果允许您使用最新的自定义元包(请注意,对于依赖关系受限的标准包,这可能并不总是最佳选择),那么您可以使用
conda install anaconda
文档:
Anaconda元包有一个特殊的“自定义”版本 具有所有包依赖项,但它们都不受约束。 “自定义”版本在版本排序上比任何实际版本都要低 版本号码。
测试的起点是已安装的2021.05版本。在此之后,conda update anaconda和conda install anaconda都会导致custom-py38_1的相同的“降级自定义版本”,请参见代码块底部:version change of anaconda = 2021.05-py38_0——> custom-py38_1。但是使用update会导致安装的包比这里安装的包多得多:
更新导致的安装步骤比安装多
(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
安装比更新更少的安装步骤:
(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. 官方元包(= release)
在下面的代码片段中,更新和安装会导致相同的结果。我在文档中使用安装。
如果您不想安装元包的自定义版本,而需要最新的正式发行版,请使用
conda install anaconda=VersionNumber
找到VersionNumber
撰写本文时,在2021年9月,最新的可用版本(Anaconda个人版)是
conda install anaconda=2021.05
但是如何获得这个VersionNumber呢?
看看Anaconda发行说明的个人版。如果需要更老的版本,则需要向下滚动该页面,例如找到2020.11。最近的信息总是在页面上方。如果使用商业版本,则需要检查其他发行说明。
因此,像2021.05版本代码这样的东西是您需要找到的最新版本快捷方式。你也可以在文档中直接链接的Anaconda版本列表中找到你操作系统的完整版本名,例如Anaconda3-2021.05-Windows-x86_64.exe。它是按名称和日期排序的,因此,你需要搜索“YYYY- mm”/“YYYY-”这样的年份,或者滚动整个列表来找到最新的版本:
以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更新—全部
至于文档(下面引用的最后一句话),安装2019.07的自定义(=最新的)元包也可以通过运行
conda update --all
如果你有虚拟环境,你需要:
conda update -n myenv --all
然而:这可能是2019.07年的一个例外。它似乎并不适用于更高的元包版本。我检查了conda update的差异——所有的差异都与conda update anaconda在行之间的比较(见下面,在引用之后)。虽然它们一开始看起来像双胞胎,但有足够小的差异让你应该远离conda更新——所有这些都是由于文档中甚至提到了可能冲突的约束。
文档:
conda update --all will unpin everything. This updates all packages in the current environment to the latest version. In doing so, it drops all the version constraints from the history and tries to make everything as new as it can. This has the same behavior with removing packages. If any packages are orphaned by an update, they are removed. conda update --all may not be able to make everything the latest versions because you may have conflicting constraints in your environment. With Anaconda 2019.07’s newer Anaconda metapackage, conda update --all will make the metapackage go to the custom version in order to update other specs.
整个输出以行为基础进行对比,显示了以下剩余的行差异。这证明了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更新在Conda更新中没有找到的输出行
(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,如果您需要尽可能高的更新,最好坚持使用自定义元包,或者如果您可以接受几个月的延迟,并且最重要的是没有任何冲突的包集合(例如,如果您在生产环境中),则使用官方元包。
结果:安装哪一个:官方元包还是自定义元包?
一些回答或评论说,自定义元包安装可能需要运行两次才能达到适当的状态。我不能确认这一点(用conda安装anaconda和conda更新anaconda测试,但我也在一个新的Python安装中)。这仍然是一个提示,安装最新的官方元包(= release, conda install anaconda=VersionNumber = conda update anaconda=VersionNumber)可能会更稳定,可能会有几个月的延迟。
另一方面,如果您希望使用最新的版本,则自定义元包(最新的可信包集合)可能很好。然后运行conda install anaconda或更强的命令conda update anaconda。
这也是更新Spyder的方法:
在conda更新anaconda之前,他们甚至没有使用conda更新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更新conda。
不要使用conda update—all,除非您需要某个包的最新更新,例如,作为安装另一个包的要求。我在测试时遇到了这个问题——在测试之后,建议下载一个新的tensorflow附加组件,但没有在其他命令之后。通常情况下,你不需要在这一点上是最新的,因此不要使用——all。
我还尝试使用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重置了我的基本环境,但不确定这是必要的。在任何情况下,当尝试这样做时,要意识到可能的后果!)
推荐文章
- 如何做一个递归子文件夹搜索和返回文件在一个列表?
- Python请求发送参数数据
- 只用一次matplotlib图例标记
- 如何获得退出代码时使用Python子进程通信方法?
- 以编程方式将图像保存到Django ImageField中
- Java“虚拟机”vs. Python“解释器”的说法?
- 检查环境变量是否存在的良好实践是什么?
- 在安装eventlet时,命令“gcc”失败,退出状态为1
- 连接一个NumPy数组到另一个NumPy数组
- 如何在Python中使用自定义消息引发相同的异常?
- 如何转换逗号分隔的字符串列表在Python?
- 如何从Python字典中提取所有值?
- 如何使用Python发送电子邮件?
- 如何在Python中使用空圆圈做散点图?
- 在Python中四舍五入到5(或其他数字)