【问题标题】:How to solve package conflict on conda如何解决 conda 上的包冲突
【发布时间】:2020-09-15 11:53:31
【问题描述】:

我想使用 Conda 从 YAML 文件创建虚拟环境。 但是,许多软件包最终都会出现冲突错误。 解决这个问题的最好方法是单独安装每个包,而不是从 YAML 文件创建虚拟环境,对吧? 如果有人知道更好的方法,请告诉我。

【问题讨论】:

    标签: python anaconda yaml conda


    【解决方案1】:

    使用具有强大依赖解析实现的 conda-forge。

    较新的 conda 版本 (>=4.6) 引入了严格的通道优先级功能。 类型

    conda config --describe channel_priority
    

    了解更多信息。

    解决方案是在使用 conda-forge 包时在 .condarc 文件中的默认值之上添加 conda-forge 通道,并通过以下方式激活严格通道优先级:

    $ conda config --set channel_priority strict
    

    这将确保所有依赖项都来自 conda-forge 通道,除非它们仅存在于默认值中。

    您也可以使用 Pipenv,以及它附带的 Pipfile 功能。 Pipenv 将尝试安装满足您的核心依赖项的所有要求的子依赖项。

    查看更多:

    https://realpython.com/pipenv-guide/

    【讨论】:

    • 感谢您的回复。我不习惯写代码,所以这里有一个具体的问题:我想在这个 YAML 文件中安装一个包,但是我遇到了很多冲突。这也可以由 conda-forge 处理吗? github.com/ardigen/mol-cycle-gan/blob/master/environment.yml
    • 我可以想象,由于 yaml 规范中的大量包和特定版本,可能会出现大量冲突。 Pipenv 可以更轻松地解决这个问题,您可以在其中软化版本限制以满足最低要求。
    • 感谢您的早日回复。我将查找一次 Pipenv 并尝试一下。如果我可以再问你一些问题,请告诉我。
    • 不客气,希望一切顺利。
    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2019-11-14
    • 2020-02-25
    • 1970-01-01
    • 2017-09-11
    相关资源
    最近更新 更多