修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問題(完美解決)
我們一直使用python-memcached庫(kù)來(lái)操作memcached,最近發(fā)現(xiàn)在python3.8的環(huán)境中,代碼會(huì)報(bào)類似這樣的警告:
memcache.py:1303: SyntaxWarning: "is" with a literal. Did you mean "=="? if key is '': memcache.py:1304: SyntaxWarning: "is" with a literal. Did you mean "=="? if key_extra_len is 0:
查了下python-memcached的源碼(其實(shí)也就一個(gè)文件),定位到1303和1304行,代碼如下:
if key is '': if key_extra_len is 0:
看來(lái)這樣的使用方法在python3.8里面是不被接受的。
雖然只是warning,但日志中打印這些信息總歸讓人感覺很不爽,所以得想法修復(fù)下。
查到官方的github倉(cāng)庫(kù),發(fā)現(xiàn)這個(gè)庫(kù)已經(jīng)有年頭沒有人管了,即使有人提出了修改的PR( https://github.com/linsomniac/python-memcached/issues/176 ),也沒有人來(lái)合并。
于是兩條路:
- 在項(xiàng)目中直接修改memcache.py文件,改掉這兩行的問題,把is改成==就可以了。
- 因?yàn)槲覀儠?huì)發(fā)個(gè)requirements.txt,所以我自己做了個(gè)修改的版本,放到了pypi上( https://pypi.org/project/python-memcached-py38fix/ ),如果有需要的可以直接下載:
pip install python-memcached-py38fix
看來(lái)下一步必須得考慮換成pymemcache了,畢竟Django都拋棄了對(duì)python-memcached的支持了。
到此這篇關(guān)于修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問題的文章就介紹到這了,更多相關(guān)python3.8報(bào)SyntaxWarning內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Matplotlib繪制三維散點(diǎn)圖詳解流程
matplotlib是基建立在python之上,適用于創(chuàng)建靜態(tài),動(dòng)畫和交互式可視化,通常與數(shù)據(jù)分析模塊pandas搭配使用,用于數(shù)據(jù)的分析和展示,適用于主流的操作系統(tǒng),如Linux、Win、Mac2022-11-11使用pandas 將DataFrame轉(zhuǎn)化成dict
今天小編就為大家分享一篇使用pandas 將DataFrame轉(zhuǎn)化成dict,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-12-12Python openpyxl 無(wú)法保存文件的解決方案
這篇文章主要介紹了Python openpyxl 無(wú)法保存文件的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-03-03keras讀取訓(xùn)練好的模型參數(shù)并把參數(shù)賦值給其它模型詳解
這篇文章主要介紹了keras讀取訓(xùn)練好的模型參數(shù)并把參數(shù)賦值給其它模型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-06-06兩個(gè)元祖T1=(''a'', ''b''),T2=(''c'', ''d'')使用匿名函數(shù)將其轉(zhuǎn)變成[{''a'': '
今天小編就為大家分享一篇關(guān)于兩個(gè)元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函數(shù)將其轉(zhuǎn)變成[{'a': 'c'},{'b': 'd'}]的幾種方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03