Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.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 jinja2.exceptions.UnfinedError:&x27;功能';是未定义的_Python_Nginx_Flask_Jinja2_Uwsgi - Fatal编程技术网

Python jinja2.exceptions.UnfinedError:&x27;功能';是未定义的

Python jinja2.exceptions.UnfinedError:&x27;功能';是未定义的,python,nginx,flask,jinja2,uwsgi,Python,Nginx,Flask,Jinja2,Uwsgi,我正在nginx+uwsgi上运行flask服务器。当我通过python server.py运行flask服务器时,我能够在我的jinja2模板中使用id\u encode函数,不会抛出错误 但是,当我通过 uwsgi--socket 0.0.0.0:8002--module server--callab app 它将崩溃,表示无法找到函数id\u encode jinja2.exceptions.UndefinedError:'id\u encode'未定义 声明通过: if __name__

我正在nginx+uwsgi上运行flask服务器。当我通过
python server.py
运行flask服务器时,我能够在我的jinja2模板中使用
id\u encode
函数,不会抛出错误

但是,当我通过

uwsgi--socket 0.0.0.0:8002--module server--callab app

它将崩溃,表示无法找到函数
id\u encode

jinja2.exceptions.UndefinedError:'id\u encode'未定义

声明通过:

if __name__ == '__main__':
    app.jinja_env.globals.update(id_encode=id_encode)
    app.run(host=host,port=5000, debug=True)

导致此问题的原因是什么?如何使函数可用?

问题是,只有当脚本作为顶级脚本运行时,
\uuuuu main\uuuuu
块才会被执行。uwsgi导入您的模块,因此
\uuuuu main\uuuu
块永远不会运行。将你的
app.jinja\u env.globals.update(id\u encode=id\u encode)
移到
\uuuuu main\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?如果不清楚,请说明问题的哪一部分不清楚。请解释一下。