sanic SanicJinja2加载模板报错__main__.__spec__ is None

sanic

今天在部署sanic项目的时候报了如下错误:

Traceback (most recent call last):
  File "F:/python/tortoise_demo/demo.py", line 5, in <module>
    jinja = SanicJinja2(app)
  File "D:\python375\Envs\test\lib\site-packages\sanic_jinja2\__init__.py", line 95, in __init__
    self.init_app(app, loader, pkg_name or app.name, pkg_path)
  File "D:\python375\Envs\test\lib\site-packages\sanic_jinja2\__init__.py", line 120, in init_app
    pkg_name or app.name, pkg_path or "templates"
  File "D:\python375\Envs\test\lib\site-packages\jinja2\loaders.py", line 286, in __init__
    spec = importlib.util.find_spec(package_name)
  File "d:\python375\lib\importlib\util.py", line 114, in find_spec
    raise ValueError('{}.__spec__ is None'.format(name))
ValueError: __main__.__spec__ is None

我的版本是

sanic 21.6.0

sanic-jinja2 0.10.0

jinja2 3.0.1

通过一番尝试之后定位到错误是发生在jinja2的版本问题。

可能是jinja2 3.0版本和其他组件兼容性不合适,将jinja2降到我之前可以运行的机器的版本2.11.2即可正常运行。

解决方案:将jinja2降到2.X版本即可我是2.11.2你也可以尝试一下

字体放大给没有时间的小伙伴看一下。

欢迎关注本站,可以在评论区发表你的看法,一起交流学习哦!

发表评论