【问题标题】:How to export and import a conda environment without errors如何在没有错误的情况下导出和导入 conda 环境
【发布时间】:2021-11-03 20:18:18
【问题描述】:

我是这样导出一个conda环境的:

conda env export > environment.yml´

然后将 environment.yml 文件提交并拉取到 git repo。

我从另一台计算机克隆了 repo,然后尝试创建 conda 环境:

conda env create -f environment.yml

首先我得到一个警告:

警告:您的环境文件中有 pip 安装的依赖项, 但是您没有将 pip 本身列为您的 conda 依赖项之一。 Conda 可能不会使用正确的 pip 来安装您的软件包,并且它们 最终可能会出现在错误的地方。请添加显式 pip 依赖项。 我给你加了一个,但还在唠叨你

我不知道为什么 conda export 在环境定义中不包含 pip。

然后我收到错误/不可用版本的软件包之类的错误:

es-core-news-sm==3.0.0 版本未找到

我刚刚删除了版本部分,只留下了包的名称并让它使用:

conda env update --prefix ./env --file environment.yml  --prune

这里有更多详细信息:

我想知道如何避免这种行为?

【问题讨论】:

    标签: python conda


    【解决方案1】:

    pypi 上不存在es-core-news-sm==3.0,其中只有 3.1 和 2.3.1 可用,因此出现错误消息。

    这当然是特定于您所拥有的环境和已安装的软件包的东西。在您的特定情况下,只需删除版本即可解决问题,但不能保证这在所有情况下都有效。

    至于原因,我只能猜测,但我预计你的情况是:

    1. 您已将es-core-news-sm==3.0 安装到您的环境中
    2. 该软件包的开发人员创建了一个新版本并决定删除旧版本
    3. 导出环境确实正确声明它包含es-core-news-sm==3.0
    4. 从步骤 3 中的 .yaml 创建环境失败,因为包不再可用(请参阅 2。)

    另一种选择(取决于您的用例)可能是使用conda-pack,它可以创建您的环境的打包版本,然后您可以解包。这只有在源机器和目标机器上的操作系统相同时才有效

    【讨论】:

    • 如您所述,PyPI 中不提供 3.0 版本。那里有从 2.3.1 到 3.1.0 的跳跃。在 github repo 中有很多其他版本。我猜他们在 PyPI 中只维护了其中的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2020-05-26
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多