修复python-memcached在python3.8环境中报SyntaxWarning的问题(完美解决)
短信预约 -IT技能 免费直播动态提醒
我们一直使用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的支持了。
到此这篇关于修复python-memcached在python3.8环境中报SyntaxWarning的问题的文章就介绍到这了,更多相关python3.8报SyntaxWarning内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341