日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sanic学习踩坑记录:第一坑——sanic_jinja2应用报错ModuleNotFoundError: No module named ‘AppName‘

發布時間:2023/12/29 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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‘的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。