sanic学习踩坑记录:第一坑——sanic_jinja2应用报错ModuleNotFoundError: No module named ‘AppName‘
生活随笔
收集整理的這篇文章主要介紹了
sanic学习踩坑记录:第一坑——sanic_jinja2应用报错ModuleNotFoundError: No module named ‘AppName‘
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
剛開始學習使用sanic,發現有一些坑,隨手記錄一下;以供后來者共同學習,避免踩坑;
# 使用的軟件版本 python 3.8.10 sanic 21.9.3 sanic-jinja2 0.10.0第一坑:sanic_jinja2應用報錯
剛開始學習,跟隨著https://blog.csdn.net/Mr_Gorgre/article/details/103242844?進行測試,但是運行起來一直報錯;ModuleNotFoundError: No module named 'MyApp'
其中‘MyApp’是app = Sanic(name='MyApp'),自己命名的名稱。
(VENV) PS E:\wim\project\pyweb\asyncWeb> & e:/wim/project/pyweb/asyncWeb/VENV/Scripts/python.exe e:/wim/project/pyweb/asyncWeb/views/sanic_web.py Traceback (most recent call last):File "e:/wim/project/pyweb/asyncWeb/views/sanic_web.py", line 39, in <module>tp = sj2(app, session=session)File "E:\wim\project\pyweb\asyncWeb\VENV\lib\site-packages\sanic_jinja2\__init__.py", line 95, in __init__File "E:\wim\project\pyweb\asyncWeb\VENV\lib\site-packages\sanic_jinja2\__init__.py", line 119, in init_appFile "d:\python\lib\site-packages\jinja2\loaders.py", line 287, in __init__import_module(package_name)File "d:\python\lib\importlib\__init__.py", line 127, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "<frozen importlib._bootstrap>", line 1014, in _gcd_importFile "<frozen importlib._bootstrap>", line 991, in _find_and_loadFile "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked ModuleNotFoundError: No module named 'MyApp'根據錯誤提示,定位到錯誤點:
tp = sj2(app, session=session)百度了一下,沒有找到說明解決方案。找到的基本都是以下幾種方式:
# 通常是這種模式 tp = sj2(app)# 還有這種模式 tp = sj2(app, session=session)# 嘗試之后都不行,也嘗試將 app = Sanic(name='MyApp') # 改為 app = Sanic() # 或者改為 app = Sanic(__name__) # 這種模式也都不行,新版本sanic要求必須添加APP名稱,不然會報錯sanic.exceptions.SanicException: Sanic instance cannot be unnamed. Please use Sanic(name='your_application_name') instead.最后智能翻看庫文件代碼,找解決方案;
(class) SanicJinja2(app=None, loader=None, pkg_name=None, pkg_path=None, context_processors=None, session=None, **kwargs)發現少了一些參數,重新增加了pkg_name參數,終于可以正常運行了。
tp = sj2(app, app.name, session=session)百度了好久沒找到這個地方,所以記錄下來,跟大家分享一下。
總結
以上是生活随笔為你收集整理的sanic学习踩坑记录:第一坑——sanic_jinja2应用报错ModuleNotFoundError: No module named ‘AppName‘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AndroidStudio开发高德地图有
- 下一篇: 西门子s7-1200PLC控制V90PN