【问题标题】:Create from file gives CondaHTTPError: HTTP 404 NOT FOUNDCreate from file 给出 CondaHTTPError: HTTP 404 NOT FOUND
【发布时间】:2018-03-12 21:37:18
【问题描述】:

我创建了一个 Anaconda Python Conda 环境并导出了一个规范文件,以便以后如有必要,我可以使用命令 conda list --explicit 重新安装完全相同的环境。那一天就是今天,但我很失望地看到其中一个文件不可用并被更新的版本替换:

https://conda.anaconda.org/conda-forge/win-64/gdal-2.1.3-np111py35_vc14_0.tar.bz2 https://conda.anaconda.org/conda-forge/win-64/gdal-2.1.3-np111py35_vc14_7.tar.bz2

Conda 遇到错误,因为链接断开,然后它重试了几次都不成功:

CondaError: CondaHTTPError: HTTP 404  NOT FOUND for url <https://conda.anaconda.org/conda-forge/win-64/gdal-2.1.3-np111py35_vc14_0.tar.bz2
Elapsed: 00:01.270000
CF-RAY: 3fa8f7eb093298a1-LAX

An HTTP error occurred when trying to retrieve this URL.
HTTPerrors are often intermittent, and a simple retry will get you on your way.

四部分问题:

  1. 规范文件是否仅用于非常短期的使用?
  2. 我是否应该独立归档每个 .bz2 文件以便以后能够重新创建环境?
  3. 是否有可用的工具可以帮助我执行此操作,或者我应该查看文件夹并手动找到我需要的内容并将其复制并 conda 安装每个文件夹?
  4. 除了尝试安装它并观察它崩溃之外,还有更好的方法来检查规范文件的所有链接的有效性吗?看起来 conda 会检查它是否已经在另一个环境中下载了相同的文件,并且不会尝试再次下载,并且可能会隐藏损坏的链接。

【问题讨论】:

    标签: python anaconda conda


    【解决方案1】:

    在 conda 频道中,无法保证您使用的工具的版本将永远保持不变。例如,如果在某个工具中发现了错误,则会对其进行更正,并以更新的版本代替旧版本。

    conda list --explicit 不是导出环境的好方法,正如你所说,它只能在很短的时间内工作。此外,它不能移植到其他操作系统。我会推荐 conda env exportconda list --export,如 conda 文档中所述:https://conda.io/docs/commands/env/conda-env-export.html .这样,工具的版本将被保留,但不会保留每个包可以下载的完整 URL,并且可能会经常更改。

    所以回答

    第一季度:
    如果您以正确的方式导出环境,则可以随着时间的推移使用它们。您永远无法确定您 10 年前使用的工具版本是否仍然可用,但 conda 会在导入您的环境时告诉您这一点。

    第二季度:
    您可以创建自己的 conda 通道,并使用固定版本打包您想要的任何工具。但问题是:“你真的需要这个吗?”。这意味着您使用的工具没有升级。有时,最好更新您的代码并使用该工具的新版本,而不是保留旧的错误版本或忘记改进。

    我从未测试过,但在另一篇文章中,我读到环境自包含在一个文件夹中,$CONDA_HOME/envs/[your_env],如果它是相同的架构(linux64、windows、OSX .. .).

    第三季度:
    除了conda env export,没有其他工具可以做到这一点。顺便说一下,我认为所有下载的包都在$CONDA_HOME/pkgs

    第四季度:
    不,因为它不是导出环境的好方法。有关信息,conda 不会为不同的环境多次下载相同的包。它重用已安装的软件包。您可以在家中添加一个名为.condarc 的文件并放入该文件allow_softlinks: false。这将告诉 conda 重新安装安装新环境所需的任何包,而不是链接已安装在其他环境中的工具。

    【讨论】:

      【解决方案2】:

      执行以下命令,即可解决问题:

      conda config --remove-key channels
      conda config --append channels conda-forge --append channels bioconda --append 
      channels defaults
      

      另外请注意,我故意遗漏了您当前在频道列表中的 r 频道。您不需要也不应该使用该通道(因为它实际上会降低求解器的性能),因为 R 包已经作为 https://repo.anaconda.com/pkgs/r 的默认多通道的一部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-16
        • 1970-01-01
        • 2021-12-18
        • 2013-03-10
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 2013-11-11
        相关资源
        最近更新 更多