Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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 金字塔设置mako.imports不工作_Python_Pyramid_Mako - Fatal编程技术网

Python 金字塔设置mako.imports不工作

Python 金字塔设置mako.imports不工作,python,pyramid,mako,Python,Pyramid,Mako,我试图使用该设置来避免在每个模板文件中导入模块 最初,我在每个模板的顶部都有一个模块级块,如: <%! import logging %> 这不起作用,因为当我尝试使用它时,模板只是抛出NameError:name“logging”未定义 似乎mako.imports甚至没有被调用,因为设置如下: mako.imports = 'import SpamAndEggs' 不会抛出错误 我使用的是Pyramid 1.3和Mako 0.7.0。好的,所以看看Pyramid生成的

我试图使用该设置来避免在每个模板文件中导入模块

最初,我在每个模板的顶部都有一个模块级块,如:

<%!
    import logging
%>
这不起作用,因为当我尝试使用它时,模板只是抛出
NameError:name“logging”未定义

似乎mako.imports甚至没有被调用,因为设置如下:

mako.imports = 'import SpamAndEggs'
不会抛出错误


我使用的是Pyramid 1.3和Mako 0.7.0。

好的,所以看看Pyramid生成的Mako模板代码,它只是逐字输出配置设置中的内容、引号、括号和所有内容

因此,语法必须是:

mako.imports=导入日志记录

将多个导入作为:

mako.imports=导入日志,some.other.module

以下任何一项:

mako.imports = 'import logging'
mako.imports = ['import logging', 'some.other.module']
mako.imports = import logging, import some.other.module
最后一个抛出一个
mako.exceptions.SyntaxException
,因为它不是有效的Python,但前两个则以静默方式失败,什么也不做,因为它们只是将文本作为一行代码输出

我没有从“Python语句的字符串列表,通常是单独的“导入”行”中推断出这一点(但可能我只是没有正确理解它)

感谢Mike Bayer在Mako上的精彩表演。

来自,语法如下:

mako.imports = 
    import logging 
    import some.other.module 
以换行符分隔的导入语句。我认为文档应该用一个例子来说明这一点,因为Python人的“字符串列表”是完全不同的

多亏了迈克·梅里克尔

mako.imports = 
    import logging 
    import some.other.module