我正在编写一个要在pypi和conda上发布的Python包。为避免错误,我想将需求存储在一个文件中;至少在可预见的将来,它们是相同的。
从meta.yaml到setup.py(例如通过pyyaml)很容易,但是相反呢?如何将需求注入meta.yaml?
有没有类似的东西
{% set data = load_setup_py_data() %}
...
requirements:
run:
{{ data.get('install_requires') }}
这种情况下的最佳做法是什么?
答案 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 }}。