4

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

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

有没有类似的东西:

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

这种情况的最佳实践是什么?

4

1 回答 1

4

很难找出一个神社菜鸟,但这有效:

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

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

于 2020-04-28T20:06:49.837 回答