找到Cookiecutter扩展程序

时间:2018-01-10 10:01:28

标签: python jinja2 cookiecutter

我正在努力创建我的第一个cookiecutter。总的来说,这已经很顺利,但我现在想添加一个我自己的jinja2过滤器。

根据评论in this issue,我创建了一个新的Jinja2扩展程序much like the one here此扩展程序的完整代码位于:

https://github.com/seclinch/sigchiproceedings-cookiecutter/commit/5a314fa7207fa8ab7b4024564cec8bb1e1629cad#diff-f4acf470acf9ef37395ef389c12f8613

但是,以下简单示例演示了相同的错误:

# -*- coding: utf-8 -*-
from jinja2.ext import Extension


def slug(value):
    return value


class PaperTitleExtension(Extension):
    def __init__(self, environment):
        super(PaperTitleExtension, self).__init__(environment)
        environment.filters['slug'] = slug

我已将此代码放入新的jinja2_extensions目录,并添加了一个简单的__init__.py,如下所示:

# -*- coding: utf-8 -*-
from paper_title import PaperTitleExtension

__all__ = ['PaperTitleExtension']

基于this piece of documentation我还将以下内容添加到我的`cookiecutter.json'文件中:

"_extensions": ["jinja2_extensions.PaperTitleExtension"]

但是,运行此命令会产生以下错误:

$ cookiecutter sigchiproceedings-cookiecutter
Unable to load extension: No module named 'jinja2_extensions'

我猜我在这里错过了一些步骤,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我之前遇到了类似的错误。

Unable to load extension: No module named 'cookiecutter_repo_extensions'

问题是,就我而言,它依赖于我未安装在虚拟环境中的“ cookiecutter-repo-extension”。

答案 1 :(得分:0)

包含扩展名的目录必须位于您的PYTHONPATH上。

https://github.com/cookiecutter/cookiecutter/issues/1211#issuecomment-522226155

改进docs的公关将不胜感激?️?