python3.7環(huán)境下sanic-ext未生效踩坑解析
坑:
在python3.7環(huán)境下,通過官方文檔安裝sanic即擴(kuò)展插件,但是 sanic-ext
包不起作用,具體的表現(xiàn)為:無(wú)法打開路由/docs
。
這里的坑在于,服務(wù)啟動(dòng)時(shí),sanic不會(huì)報(bào)錯(cuò)。因此很難定位出問題在sanic-ext。
原因:
尋找sanic-ext不起作用的原因:
首先在虛擬環(huán)境中執(zhí)行import sanic_ext
結(jié)果報(bào)錯(cuò),提示缺少importlib.metadata
查詢當(dāng)前環(huán)境下importlib.metadata
的版本,發(fā)現(xiàn)在python3.7下importlib.metadata=4.2
由于本人曾在python3.8環(huán)境可以正常使用sanic-ext
,所以進(jìn)入python3.8環(huán)境下檢查發(fā)現(xiàn)importlib.metadata=3.10.0
結(jié)論:
python3.7下的importlib.metadata
版本與sanic-ext不匹配,導(dǎo)致其無(wú)法起作用
回過頭看:
雖然sanic-ext
不會(huì)報(bào)錯(cuò),但其實(shí)sanic-ext
是否生效是有跡可循的,在sanic啟動(dòng)時(shí),會(huì)有一串打印信息,可以通過打印信息中的packages
中是否包含sanic-ext
判斷sanic-ext
是否正確生效。
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Sanic v22.9.0 │ │ Goin' Fast @ http://0.0.0.0:12345 │ ├───────────────────────┬─────────────────────────────────────────────────────────────────────────────────┤ │ │ mode: debug, single worker │ │ ▄███ █████ ██ │ server: sanic, HTTP/1.1 │ │ ██ │ python: 3.8.8 │ │ ?███████ ███▄ │ platform: Linux-4.15.0-189-generic-x86_64-with-glibc2.10 │ │ ██ │ auto-reload: enabled, /xx/xx/xx │ │ ████ ████████? │ packages: sanic-routing==22.8.0, sanic-ext==22.9.0 │ │ │ │ │ Build Fast. Run Fast. │ │
后記
python3.7的importlib.metadata
高于python3.8的,不符合直覺,可能是裝其他東西更新了這個(gè)包,所以也許不是python3.7與sanic-ext
不適配,這點(diǎn)有待繼續(xù)驗(yàn)證,更多關(guān)于python3.7環(huán)境sanic-ext未生效的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python基于Faker假數(shù)據(jù)構(gòu)造庫(kù)
這篇文章主要介紹了Python基于Faker假數(shù)據(jù)構(gòu)造庫(kù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11酷! 程序員用Python帶你玩轉(zhuǎn)沖頂大會(huì)
程序員用Python玩轉(zhuǎn)王思聰?shù)摹稕_頂大會(huì)》,感興趣的小伙伴們可以參考一下2018-01-01Python實(shí)現(xiàn)針對(duì)含中文字符串的截取功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)針對(duì)含中文字符串的截取功能,結(jié)合具體實(shí)例形式分析了Python針對(duì)utf-8及gb18030編碼的中文字符串截取操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09python實(shí)現(xiàn)計(jì)數(shù)排序與桶排序?qū)嵗a
這篇文章主要介紹了python計(jì)數(shù)排序與桶排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03基于OpenCV實(shí)現(xiàn)視頻循環(huán)播放
這篇文章主要為大家介紹了如何利用OpenCV實(shí)現(xiàn)視頻的循環(huán)播放,本文為大家提供了兩種方式,一個(gè)是利用Python語(yǔ)言實(shí)現(xiàn),一個(gè)是利用C++語(yǔ)言實(shí)現(xiàn),需要的可以參考一下2022-02-02