Dim*_*bag 7 python dependencies pypi requirements.txt anaconda
我正在编写一个 Python 包,我想在 pypi 和 conda 上发布。为了避免错误,我想将需求存储在一个文件中;至少在可预见的未来,它们是一样的。
从meta.yaml 到setup.py 很容易(例如通过pyyaml),但是反过来呢?如何将需求注入到meta.yaml中?
有没有类似的东西:
{% set data = load_setup_py_data() %}
...
requirements:
run:
{{ data.get('install_requires') }}
Run Code Online (Sandbox Code Playgroud)
这种情况的最佳实践是什么?
对于 jinja 菜鸟来说很难弄清楚,但这很有效:
requirements:
run:
{% for req in data.get('install_requires', []) %}
- {{ req }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是很难弄清楚为什么,但load_setup_py_data()
似乎在期间被多次调用conda-build
,有时它返回一个没有 install_requires 的空字典,所以.get
会返回一个None
.