将需求从requirements.txt添加到conda meta.yaml

时间:2020-04-28 16:40:23

标签: python anaconda dependencies pypi requirements.txt

我正在编写一个要在pypi和conda上发布的Python包。为避免错误,我想将需求存储在一个文件中;至少在可预见的将来,它们是相同的。

从meta.yaml到setup.py(例如通过pyyaml)很容易,但是相反呢?如何将需求注入meta.yaml?

有没有类似的东西

{% set data = load_setup_py_data() %}
...
requirements:
  run:
    {{ data.get('install_requires') }}

这种情况下的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

很难想像出一个Jinja noob,但这行得通:

requirements:
  run:
    {% for req in data.get('install_requires', []) %}
      - {{ req }}
    {% endfor %}

令人惊讶的是,很难弄清楚为什么load_setup_py_data()conda-build期间被多次调用,有时返回一个空的字典,没有install_requires,所以.get会返回一个{{1 }}。