修复python-memcached在python3.8环境中报SyntaxWarning的问题(完美解决)
我们一直使用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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
浅析Python的Django框架中的Memcached
动态网站的问题就在于它是动态的. 也就是说每次用户访问一个页面,服务器要执行数据库查询,启动模板,执行业务逻辑以及最终生成一个你所看到的网页,这一切都是动态即时生成的. 从处理器资源的角度来看,这是比较昂贵的. 对于大多数网络应用来说,过载并不是大问题. 因为大多数网络应用并不是washingtonpost.com或Slashdot:它们通常是很小很简单,或者是中等规模的站点,只有很少的流量. 但是对于中等至大规模流量的站点来说,尽可能地解决过载问题是非常必要的. 这就需要用到缓存了. 缓存的目
-
Python中用memcached来减少数据库查询次数的教程
本来我一直不知道怎么来更好地优化网页的性能,然后最近做python和php同类网页渲染速度比较时,意外地发现一个很简单很白痴但是 我一直没发现的好方法(不得不BS我自己):直接像某些php应用比如Discuz论坛那样,在生成的网页中打印出"本页面生成时间多少多少秒",然后在 不停地访问网页测试时,很直观地就能发现什么操作会导致瓶颈,怎样来解决瓶颈了. 于是我发现SimpleCD在 生成首页时,意外地竟然需要0.2秒左右,真真不能忍:对比Discuz论坛首页平均生成才0.02秒,而Dis
-
Python编写memcached启动脚本代码实例
memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但被许多网站使用.这是一套开放源代码软件,以BSD license授权发布. memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后. memcached的API使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的机器上.当表格满了以后,接下来新增的数据会以LRU机制替换掉.由于memcached通常只是当作缓存系统使用,所以使用
-
用Python的Tornado框架结合memcached页面改善博客性能
原因 Blog是一个更新并不很频繁的一套系统,但是每次刷新页面都要更新数据库反而很浪费资源,添加静态页面生成是一个解决办法,同时缓存是一个更好的主意,可以结合Memcached添加少量的代码进行缓存,而且免去去了每次更新文章都要重新生成静态页面,特别当页面特别多时. 实现 主要通过页面的uri进行缓存,结合tornado.web.RequestHandler的prepare和on_finish方法函数, prepare 主要是请求前执行,on_finish()是请求结束之前执行.在渲染模板时缓存
-
修复python-memcached在python3.8环境中报SyntaxWarning的问题(完美解决)
我们一直使用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 &qu
-
python3.7安装matplotlib失败问题的完美解决方法
目录 起因: 问题描述 解决方案: 总结 起因: 刚学习机器学习,需要用到matplotlib这个库,结果安装失败了 问题描述 一开始在pycharm里进行安装,失败了,查看日志,没有error提示,就去cmd尝试pip install matplotlib 结果依旧失败 pip install matplotlib 按照error提示大概可以知道pip库版本太久了,所以需要升级pip的版本,在cmd进入python的Scripts文件夹输入以下命令对pip库进行升级 python -m pip
-
完美解决Python 2.7不能正常使用pip install的问题
主要原因是用户目录编码使用了中文,解决方法如下: pip安装python包会加载我的用户目录,我的用户目录恰好是中文的,ascii不能编码. 解决办法是: python目录 Python27\Lib\site-packages 建一个文件sitecustomize.py 内容写: import sys sys.setdefaultencoding('gb2312') python会自动运行这个文件. 以上这篇完美解决Python 2.7不能正常使用pip install的问题就是小编分享给大家的
-
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
以此文记录Python与Tensorflow及其开发环境的安装与配置过程,以备以后参考. 1 硬件与系统条件 Win7 64位系统,显卡为NVIDIA GeforeGT 635M 2 安装策略 a.由于以上原因,选择在win7下安装cpu版的tensorflow,使用anconda安装,总结下来,这么做是代价最小的. b. 首先,不要急于下载Python,因为最新的版本可能会与Anaconda中的Python版本发生冲突.以目前(截止2017-06-17日)的情况,Anaconda选择Anaco
-
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
之前把现有这台阿里CentOS7.2系统的Python2.7.5升级成Python3.6后,yum工具就不能不觉使用了.当时查了下说明python版本的问题,但是用网上的方法还是没解决,后面也就一直没管了.最近要弄一个Nodejs小程序,需要用yum安装一些开发工具,不得不修复这个问题. 1 yum工具报错情况 直接执行 yum 命令就会提示 /usr/bin/yum 文件第34行有错误: [root@typecodes ~]# yum File "/usr/bin/yum", lin
-
centos 安装python3.6环境并配置虚拟环境的详细教程
python3.6下载地址: https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz linux 下python 环境配置 统一目录: 源码存放位置 $HOME/tools 安装目录: /application 安装python 环境: 1. 下载 # 创建下载目录 mkdir $HOME/tools # 切换到tools统一管理源码目录 cd $HOME/tools wget https://www.python.org/ftp/py
-
Ubuntu18.04中Python2.7与Python3.6环境切换
本文为大家分享了Python2.7与Python3.6环境切换的具体方法,供大家参考,具体内容如下 系统支持为:Ubuntu18.04 系统默认安装:Python2.7 自己安装:Python3.6 由于编写需要,有些程序只能在Python3下进行执行,当然可以选择在命令行进行指定环境的运行,但总归是有点不方便,便将系统的默认环境进行修改 1.查看系统的Python环境 python --version 2.查看系统Python的可用环境列表 update-alternatives --list
-
python3.6环境安装+pip环境配置教程图文详解
1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们需要历史版本下载 如图点击: 下载途中标记的: 按照图中箭头执行: 这里选中存放的路径和把配置环境变量选项勾上,如图: 安装完成 测试结果 如果出现图下的就是环境变量没有配置好: 配置环境变量: 把图中2个路径配置到环境变量中 再次输入python 如图: python就安装好了; 第二种安装方法,
-
python3.7环境下安装Anaconda的教程图解
下载Anaconda安装包 官网下载或是在清华大学镜像站下载,我安装的是下面这个版本: 安装过程 配置环境 将anaconda的scripts文件夹路径添加到环境变量中. 如果命令行输入输出如图所示则安装成功: 为了避免可能发生的错误, 我们在命令行输入conda upgrade --all 先把所有工具包进行升级.(也可以不安装升级) 打开pycharm,如图点击add local 点击第三个选项,system interpreter,选择python.exe路径,点击ok,就可以了. 总结
-
vscode 配置 python3开发环境的方法
vscode来写python,配置灵活,界面美观,是个非常好的选择.我这里是在ubuntu系统下配置vscode的python3开发环境,当然也可以参照本文在其它操作系统下配置vscode的python开发环境. 1 安装插件 python 这个是vscode提供的python 官方插件,提供了python代码的调试,自动补全,代码格式化等功能 vscode-icons 这个也是vscode官方提供的插件,作用是给vscode编辑的文件增加图标.这里再推荐一个相同功能的插件**vscode-ic
随机推荐
- 常用SQL语句优化技巧总结【经典】
- jquery实现用户登陆界面(示例讲解)
- 深入理解ES6 Promise 扩展always方法
- 详解关于iOS内存管理的规则思考
- Python实现的十进制小数与二进制小数相互转换功能
- javascript中关于break,continue的特殊用法与介绍
- 带左右箭头图片轮播的JS代码
- HTML标签及ASP函数速查表
- cookie、session和java过滤器结合实现登陆程序
- C# 拓展方法的简单实例
- php eval函数用法 PHP中eval()函数小技巧
- jQuery获取URL请求参数的方法
- Python版Mssql爆破小脚本
- Vue异步加载about组件
- ajax回调函数中使用$(this)取不到对象的解决方法
- 浅谈Python2获取中文文件名的编码问题
- JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
- JSON是什么?有哪些优点?JSON和XML的区别?
- 易语言做游戏辅助的方法
- Django结合ajax进行页面实时更新的例子