在 conda 包中模板化包名或入口点不起作用

问题描述

要构建 conda 包,需要 Meta.yaml 文件,其中列出了包的名称、版本和入口点,并指定了如何构建包。

此外,它支持 yaml 文件的大部分部分基于 jinja2 的模板。

如何让它从 setup.py 文件加载包名和入口点?

给定一个包含以下内容的 setup.py 文件

#!/usr/bin/env python

"""The setup script."""

from setuptools import setup,find_packages


setup(
    entry_points={
        'console_scripts': [
            'foo=foo.cli:main',],},name='foo',packages=find_packages(include=['foo','foo.*']),)

还有一个 Meta.yaml:

{% set data = load_setup_py_data() %}
name: "{{ data['name'] }}"

为什么包的 conda 构建失败:

Error: package/name missing in: '/path/to/conda.recipe/Meta.yaml'

或者对于 Meta.yaml 的:

entry_points:
      - "{{ data['entry_points']['console_scripts'] }}"

fail with:
conda_build/build.py",line 1217,in get_entry_point_script_names
    cmd = entry_point[:entry_point.find("=")].strip()
AttributeError: 'nonetype' object has no attribute 'find'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...