Create from file给CondaHTTPError:http404找不到

2024-04-26 02:39:44 发布

您现在位置:Python中文网/ 问答频道 /正文

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

https://conda.anaconda.org/conda-forge/win-64/gdal-2.1.3-np111py35_vc14_0.tar.bz2https://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. spec文件只用于短期使用吗?在
  2. 我是否应该独立归档每个.bz2文件,以便以后重新创建环境?在
  3. 有没有工具可以帮我做这件事,或者我应该看看文件夹,手动找到我需要的,并复制它,然后每一个都安装?在
  4. 有没有更好的方法来检查spec文件所有链接的有效性,而不是试图安装它并看着它崩溃?看起来conda会检查它是否已经在另一个环境中下载了相同的文件,并且不会尝试再次下载,断开的链接可能会被隐藏。在

Tags: 文件httpsorg环境链接anacondatarconda
1条回答
网友
1楼 · 发布于 2024-04-26 02:39:44

在conda频道中,不能保证您使用的工具的版本将被永久维护。例如,如果在一个工具中发现了一个bug,它将被更正,并将用一个新版本代替旧版本。在

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

所以回答

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

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

我从来没有测试过,但在另一篇文章中我读到环境是自包含在一个文件夹中,$CONDA_HOME/envs/[your_env]并且这个文件夹可以直接复制到另一个conda安装中,如果它是相同的架构(linux64,windows,OSX…)。在

问题3:
除了conda env export之外,没有其他工具可用于此操作。顺便说一下,我想所有下载的包都在$CONDA_HOME/pkgs中。在

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

相关问题 更多 >