Anaconda python:尝试回滚修订版时出现PackagesNotFoundError错误

Aen*_*aon 9 python python-3.x anaconda

出于某种原因,我决定升级setuptools. 我跑的时候弹出的所谓打包方案conda install -c anaconda setuptools如下:

The following packages will be downloaded:

  package                    |            build
  ---------------------------|-----------------
  certifi-2019.3.9           |           py37_0         155 KB  anaconda
  pip-19.1.1                 |           py37_0         1.8 MB  anaconda
  python-3.7.2               |      h8c8aaf0_10        17.7 MB  anaconda
  setuptools-41.0.1          |           py37_0         680 KB  anaconda
  wheel-0.33.4               |           py37_0          57 KB  anaconda
  wincertstore-0.2           |           py37_0          13 KB  anaconda
  ------------------------------------------------------------
                                       Total:        20.4 MB

The following NEW packages will be INSTALLED:

   pip                anaconda/win-64::pip-19.1.1-py37_0

The following packages will be UPDATED:

  certifi     2018.11.29-py36_0 --> 2019.3.9-py37_0
  python      pkgs/main::python-3.6.4-h6538335_1 --> anaconda::python-3.7.2-h8c8aaf0_10
  setuptools  pkgs/main::setuptools-38.4.0-py36_0 --> anaconda::setuptools-41.0.1-py37_0
  wheel       pkgs/main::wheel-0.30.0-py36h6c3ec14_1 --> anaconda::wheel-0.33.4-py37_0

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

  wincertstore     pkgs/main::wincertstore-0.2-py36h7fe5~ --> anaconda::wincertstore-0.2-py37_0
Run Code Online (Sandbox Code Playgroud)

然而,升级破坏了我代码中真正需要且无法更新的其他部分。因此我决定回滚到以前的状态。最近的修订来自 conda list --revisions

2019-02-12 15:10:38  (rev 12)
    bzip2  {1.0.6 (conda-forge) -> 1.0.6 (anaconda)}
    ca-certificates  {2018.03.07 -> 2019.1.23 (anaconda)}
    certifi  {2018.11.29 -> 2018.11.29 (anaconda)}
    conda  {4.5.12 -> 4.6.2 (anaconda)}
    nbconvert  {5.3.1 -> 5.4.0 (anaconda)}
    openssl  {1.1.1a -> 1.1.1 (anaconda)}
    snappy  {1.1.7 (conda-forge) -> 1.1.7 (anaconda)}
    vc  {14.1 -> 14.1 (anaconda)}
    vs2015_runtime  {14.15.26706 -> 15.5.2 (anaconda)}
    yaml  {0.1.7 (conda-forge) -> 0.1.7 (anaconda)}
    zlib  {1.2.11 (conda-forge) -> 1.2.11 (anaconda)}
   +defusedxml-0.5.0 (anaconda)

2019-05-17 16:52:29  (rev 13)
    certifi  {2018.11.29 (anaconda) -> 2019.3.9 (anaconda)}
    pip  {9.0.1 -> 19.1.1 (anaconda)}
    python  {3.6.4 -> 3.7.2 (anaconda)}
    setuptools  {38.4.0 -> 41.0.1 (anaconda)}
    wheel  {0.30.0 -> 0.33.4 (anaconda)}
    wincertstore  {0.2 -> 0.2 (anaconda)}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我这样做时conda install --revision 12,出现以下错误:

PackagesNotFoundError: The following packages are missing from the target environment:
    - anaconda::certifi==2018.11.29=py36_0
Run Code Online (Sandbox Code Playgroud)

任何想法如何进行回滚?

非常感谢

小智 10

我遇到了类似的问题,无法恢复到旧版本。命令后

conda install --revision N
Run Code Online (Sandbox Code Playgroud)

我在样式中收到类似的错误消息

PackagesNotFoundError: The following packages are missing from the target environment:
    - channel-name::package==v.v.v=build
    - ...
Run Code Online (Sandbox Code Playgroud)

有用的是将通道添加到命令中

conda install --revision N -c channel-name
Run Code Online (Sandbox Code Playgroud)


J_H*_*J_H 5

您似乎是通过发出一系列conda install命令来维护您的环境。您可以继续执行此操作,并在命令行上使用附加版本规范。但我鼓励你改用这种方法:

创建一个environment.yml看起来像这样的文件。

name: myproject

channels:
  - conda-forge

dependencies:
  - bzip2 >= 1.0.6
  - pip >= 19.1.1
  - snappy >= 1.1.7
  - zlib >= 1.2.11
Run Code Online (Sandbox Code Playgroud)

根据需要添加其他人。

使用conda env update安装软件包。(which python您可以看到它们的安装位置。)

这种方法的一个优点是您可以轻松地 rm -rf ~/miniconda3/envs/myproject/ (或安装在任何地方)然后conda env update从头开始重新安装。这通常可以解决版本炎问题,或者至少提供关于应该放宽哪些版本约束以允许可行的解决方案的提示。

  • 这是一个很好的建议,但对于已经达到这一点的人来说并不是真正的答案。 (8认同)