Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 试图覆盖Pelican插件中的jinja加载程序_Python_Jinja2_Pelican - Fatal编程技术网

Python 试图覆盖Pelican插件中的jinja加载程序

Python 试图覆盖Pelican插件中的jinja加载程序,python,jinja2,pelican,Python,Jinja2,Pelican,我有一个插件,试图在从文件夹加载模板之前加载my_assets python包 我收到的错误是:严重:没有在Jinja2环境中配置资产环境 def foo(generator): self._templates = {} self._templates_path = [] self._templates_path.append(os.path.expanduser(os.path.join(self.theme, 'templates'))) self._temp

我有一个插件,试图在从文件夹加载模板之前加载my_assets python包

我收到的错误是:
严重:没有在Jinja2环境中配置资产环境

def foo(generator):
    self._templates = {}
    self._templates_path = []
    self._templates_path.append(os.path.expanduser(os.path.join(self.theme, 'templates')))
    self._templates_path += self.settings['EXTRA_TEMPLATES_PATHS']

    theme_path = os.path.dirname(os.path.abspath(__file__))
    simple_loader = FileSystemLoader(os.path.join(theme_path, "themes", "simple", "templates"))

    self.env = Environment(
        trim_blocks=True,
        lstrip_blocks=True,
        loader=ChoiceLoader([
            PackageLoader('my_assets', 'templates'),
            FileSystemLoader(self._templates_path),
            simple_loader,
            PrefixLoader({'!simple': simple_loader})
            ]),
        extensions=self.settings['JINJA_EXTENSIONS'],
    )
    self.env.filters.update({'strftime': DateFormatter()})
    custom_filters = self.settings['JINJA_FILTERS']
    self.env.filters.update(custom_filters)
def register():
    signals.generator_init.connect(foo)

发现这实际上是由于我的插件与使用
self.env
的pelican资产插件冲突造成的。只需要重写self.env.loader

结果只是使用了

self.env.loader = ChoiceLoader([
            PackageLoader('my_assets', 'templates'),
            FileSystemLoader(self._templates_path),
            simple_loader,
            PrefixLoader({'!simple': simple_loader})
            ])