我正在努力创建我的第一个 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'

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

最佳答案

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

Unable to load extension: No module named 'cookiecutter_repo_extensions'

问题是,在我的情况下,我没有在虚拟环境中安装“cookiecutter-repo-extension”依赖项。

关于python - 定位 Cookiecutter 扩展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48184756/

10-11 17:54