【问题标题】:how to specify external software requirements with conda/meta.yaml in Python?如何在 Python 中使用 conda/meta.yaml 指定外部软件需求?
【发布时间】:2015-03-06 04:47:17
【问题描述】:

我正在为一个 python 包编写一个meta.yaml 文件,以便在 conda 包中以一种适用于 CI 系统的方式使用。如何指定软件包的外部软件要求?意味着不是python库但包单元测试通过的软件? 澄清:需要的模块不是python包,而是python包依赖它。

【问题讨论】:

    标签: python travis-ci anaconda conda


    【解决方案1】:

    meta.yaml 中的要求可以是任何 conda 包(不必只是 Python 包)。如果您的依赖项有 conda 包,则可以指定它。

    【讨论】:

    • 如果你没有 conda 包怎么办?有没有办法添加一个“预构建”步骤来下载 .tar.gz 并使用标准步骤 (./configure; make,...) 构建它?
    • 你应该为他们制作和制作食谱。见conda.pydata.org/docs/build.htmlconda.pydata.org/docs/build_tutorials.html
    • 如果包在 binstar.org 的某个用户频道上,我想在 meta.yaml 中声明它为依赖项怎么办?简单地输入包名是行不通的,因为 conda 找不到它
    • 您必须使用conda config --add channels channelname将频道添加到您的配置中。
    • conda 本身是跨平台的,但大多数软件包仅针对特定平台构建。如果包是纯 Python,您可以使用 conda convert 将其转换为另一个平台(或使用 conda skeleton pypi 创建配方并自行构建)。
    【解决方案2】:

    根据the docs,有一个requirements 部分,您可以在其中指定构建和运行依赖项。

    【讨论】:

    • 那些只是看起来像的python包
    • 它们不仅仅是 python 包,您也应该将此部分用于系统库。但是,我认为不可能指定频道。
    猜你喜欢
    • 2020-08-12
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    相关资源
    最近更新 更多