Conda:如何仅更新在命令中指定的软件包?

时间:2020-08-23 21:41:26

标签: python anaconda conda

我正在尝试在最新的Anaconda安装中更新单个软件包(发行日期 2020-07-31 Ubuntu 20.04.1),但建议进行许多其他软件包更新,包括一些我不一定想要的东西。

如何缩小到仅更新我关心的软件包?

规范

Python版本:3.8.3

Conda版本:4.8.4

问题输出

当我尝试conda update numpy时,conda要么想更新许多 other 软件包,要么抱怨anaconda软件包固定了特定版本。

它不一定是numpy,也可以是其他软件包,例如scipy。以下是我得到的。为什么会有很多套票?我不仅可以numpy并继续前进吗?

conda update numpy

# output below, why can't I just update numpy ONLY??
....

The following NEW packages will be INSTALLED:

  _anaconda_depends  pkgs/main/linux-64::_anaconda_depends-2020.07-py38_0
  argon2-cffi        pkgs/main/linux-64::argon2-cffi-20.1.0-py38h7b6447c_1
  gettext            pkgs/main/linux-64::gettext-0.19.8.1-hd7bead4_3
  iniconfig          pkgs/main/noarch::iniconfig-1.0.1-py_0
  libiconv           pkgs/main/linux-64::libiconv-1.15-h63c8f33_5

The following packages will be UPDATED:

  asn1crypto         pkgs/main/linux-64::asn1crypto-1.3.0-~ --> pkgs/main/noarch::asn1crypto-1.4.0-py_0
  bitarray                             1.4.0-py38h7b6447c_0 --> 1.5.2-py38h7b6447c_0
  blosc                                   1.19.0-hd408876_0 --> 1.20.0-hd408876_0
  fribidi                                  1.0.9-h7b6447c_0 --> 1.0.10-h7b6447c_0
  fsspec                                         0.7.4-py_0 --> 0.8.0-py_0
  gstreamer                               1.14.0-hb31296c_0 --> 1.14.0-hb453b48_1
  ipykernel                            5.3.2-py38h5ca1d4c_0 --> 5.3.4-py38h5ca1d4c_0
  ld_impl_linux-64   pkgs/main::ld_impl_linux-64-2.33.1-h5~ --> conda-forge::ld_impl_linux-64-2.34-hc38a660_9
  lz4-c                                    1.9.2-he6710b0_0 --> 1.9.2-he6710b0_1
  notebook                                     6.0.3-py38_0 --> 6.1.1-py38_0
  numpy                               1.18.5-py38ha1c710e_0 --> 1.19.1-py38hbc911f0_0
  numpy-base                          1.18.5-py38hde5b4d6_0 --> 1.19.1-py38hfa32c7d_0
  pandas                               1.0.5-py38h0573a6f_0 --> 1.1.0-py38he6710b0_0
  pandoc                                             2.10-0 --> 2.10.1-0
  path.py                                          12.4.0-0 --> 12.5.0-0
  pip                                         20.1.1-py38_1 --> 20.2.2-py38_0
  pytest                                       5.4.3-py38_0 --> 6.0.1-py38_0
  python                 pkgs/main::python-3.8.3-hcff3b4d_2 --> conda-forge::python-3.8.5-h1103e12_5_cpython
  regex                             2020.6.8-py38h7b6447c_0 --> 2020.7.14-py38h7b6447c_0
  scipy                                1.5.0-py38h0b6359f_0 --> 1.5.2-py38h0b6359f_0
  setuptools                                  49.2.0-py38_0 --> 49.6.0-py38_0
  sphinx                                         3.1.2-py_0 --> 3.2.1-py_0
  sphinxcontrib-web~                             1.2.3-py_0 --> 1.2.4-py_0
  sqlite                                  3.32.3-h62c20be_0 --> 3.33.0-h62c20be_0
  tbb                                     2020.0-hfd86e86_0 --> 2020.1-hfd86e86_0
  tblib                                          1.6.0-py_0 --> 1.7.0-py_0
  urllib3                                       1.25.9-py_0 --> 1.25.10-py_0

The following packages will be SUPERSEDED by a higher-priority channel:

  glib                    pkgs/main::glib-2.65.0-h3eb4bd4_0 --> conda-forge::glib-2.65.0-h6f030ca_0

The following packages will be DOWNGRADED:

  anaconda                                   2020.07-py38_0 --> custom-py38_1
  cffi                                1.14.0-py38he30daa8_1 --> 1.14.0-py38h2e261b9_0
  libffi                                     3.3-he6710b0_2 --> 3.2.1-hd88cf55_4
  zstd                                     1.4.5-h0b5b093_0 --> 1.4.5-h9ceee32_0


Proceed ([y]/n)? n

我不喜欢将python更新为conda-forge软件包的事实(不是我对conda-forge软件包没有任何东西),因为我没有要求。 / p>

这是我的$HOME/.condarc文件:

channels:
  - defaults
  - pytorch
  - conda-forge

在这里感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以通过在 Anaconda 中禁用它来停止依赖项更新。详细说明here

您还需要关注官方注意事项

<块引用>

Conda 仍然确保满足依赖项规范。 因此,某些依赖项可能仍会更新,或者相反,这可能 防止在命令行中给出的包被更新到它们的 最新版本。您始终可以在命令行中指定版本 强制 conda 安装给定版本,例如 conda install numpy=1.9.3.

您需要在环境的主目录中创建一个文件 .condarc。然后添加这一行。

update_dependencies: False

详情here

之后,您就可以安装该软件包了。