我是靠谱客的博主 隐形背包,这篇文章主要介绍Python 3.7 下 Twisted兼容问题,现在分享给大家,希望可以做个参考。

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。到这里终于明白了,错误就来自这:asyncpy37的关键词,不能作为关键字参数。修改方法也很简单,把Python37libsite-packagestwistedconchmanhole.py中全部的async修改为其他非py37关键词的名称。

问题解决,放烟花。

补充

在最近刚发行的18.9版本中已经修复了这个问题

最后

以上就是隐形背包最近收集整理的关于Python 3.7 下 Twisted兼容问题的全部内容,更多相关Python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部