概述
Python 3.7 下 Twisted兼容问题
问题描述
最近学Scrapy
,想着用最新的python
版本赶个时髦,毕竟官网发布的版本显示是支持了py37
的,然鹅,没想到我还是太年轻,就算scrapy
支持了,但是twisted
还是凉着的,于是在运行官网tutorial
的时候,有了下面的错误:
File "D:Python37libsite-packagesscrapyextensionstelnet.py", line 12, in <module>
from twisted.conch import manhole, telnet
File "D:Python37libsite-packagestwistedconchmanhole.py", line 154
def write(self, data, async=False):
^
SyntaxError: invalid syntax
问题解决
在上面的报错中,可以看到,错误来源很是奇怪,报的是语法错误,辛亏我早先有看过py37
的新特性,早先在py35
发行时就提出的PEP 492
提案,终于在py37
中正式生效(以前的版本中也有,但是得from __future__ import generator_stop
)。在这个提案中,有一条就是:将协程的概念从生成器中拎了出来,并添加了新的关键词asyncawait
。到这里终于明白了,错误就来自这:async
是py37
的关键词,不能作为关键字参数。修改方法也很简单,把Python37libsite-packagestwistedconchmanhole.py
中全部的async
修改为其他非py37
关键词的名称。
问题解决,放烟花。
补充
在最近刚发行的18.9版本中已经修复了这个问题
最后
以上就是隐形背包为你收集整理的Python 3.7 下 Twisted兼容问题的全部内容,希望文章能够帮你解决Python 3.7 下 Twisted兼容问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复