日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

修復python-memcached在python3.8環境中報SyntaxWarning的問題(完美解決)_python

作者:knktc ? 更新時間: 2022-10-06 編程語言

我們一直使用python-memcached庫來操作memcached,最近發現在python3.8的環境中,代碼會報類似這樣的警告:

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的源碼(其實也就一個文件),定位到1303和1304行,代碼如下:

if key is '':
    if key_extra_len is 0:

看來這樣的使用方法在python3.8里面是不被接受的。

雖然只是warning,但日志中打印這些信息總歸讓人感覺很不爽,所以得想法修復下。

查到官方的github倉庫,發現這個庫已經有年頭沒有人管了,即使有人提出了修改的PR(?https://github.com/linsomniac/python-memcached/issues/176?),也沒有人來合并。

于是兩條路:

  • 在項目中直接修改memcache.py文件,改掉這兩行的問題,把is改成==就可以了。
  • 因為我們會發個requirements.txt,所以我自己做了個修改的版本,放到了pypi上(?https://pypi.org/project/python-memcached-py38fix/?),如果有需要的可以直接下載:
pip install python-memcached-py38fix

看來下一步必須得考慮換成pymemcache了,畢竟Django都拋棄了對python-memcached的支持了。

原文鏈接:https://knktc.com/2022/08/10/fix-python-memcached-3-8-syntax-warning/

欄目分類
最近更新