当将python-memcached安装在Python3.8环境中时,会出现以下SyntaxWarning警告信息:
/usr/local/lib/python3.8/site-packages/memcache.py:1533: SyntaxWarning: “is not” with a literal. Did you mean “!=“?
if val != b’0′ and val is not None:
这是由于Python3.8对比以前版本做了更多的限制导致的,因此需要做以下修复来解决这个问题:
- 找到Python3.8下面的memcache.py文件, 一般位于目录 “/usr/local/lib/python3.8/site-packages/memcache.py”,备份一份:
sudo cp /usr/local/lib/python3.8/site-packages/memcache.py /usr/local/lib/python3.8/site-packages/memcache.py.bak
- 修改memcache.py文件,在第1533行后面新增以下代码:
warnings.filterwarnings(action='ignore', category=SyntaxWarning, message=r"is not with a literal.*")
修改后的memcache.py代码如下:
if val != b'0' and val is not None:
return int(val)
warnings.filterwarnings(action='ignore', category=SyntaxWarning, message=r"is not with a literal.*")
- 重新安装python-memcached:
pip3 install python-memcached
这样就可以在Python3.8环境下成功使用python-memcached了。
以下是修复的示例:
首先确认Python3.8环境存在python-memcached:
pip3 list | grep memcached
当出现以下提示:
python-memcached 1.59
则表示Python3.8环境已经安装python-memcached。
接下来备份memcache.py文件:
sudo cp /usr/local/lib/python3.8/site-packages/memcache.py /usr/local/lib/python3.8/site-packages/memcache.py.bak
然后将下面这句代码加入到memcache.py文件中:
warnings.filterwarnings(action='ignore', category=SyntaxWarning, message=r"is not with a literal.*")
最后重新安装python-memcached:
pip3 install python-memcached
通过以上步骤,就可以修复Python3.8环境下python-memcached部署时输出的SyntaxWarning警告信息了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:修复python-memcached在python3.8环境中报SyntaxWarning的问题(完美解决) - Python技术站