python asyncio 无效语法 ubuntu

Posted

技术标签:

【中文标题】python asyncio 无效语法 ubuntu【英文标题】:python asyncio invalid syntax ubuntu 【发布时间】:2016-12-18 17:55:18 【问题描述】:

在 OS X 上,我的代码运行良好。在 ubuntu 上尝试准确的代码,我得到一个语法错误:

ubuntu@home:server$ python3 server.py
  File "server.py", line 39
    async def hello(websocket, path):
            ^
SyntaxError: invalid syntax

我用pip3 install asyncio安装了asyncio

我也尝试升级到 python 3.5,但它会导致其他库出现大量库错误,到目前为止,我无法在 ubuntu 上使用 python 3.5,尽管它适用于 OS X 上的 python 3.5。

【问题讨论】:

async def 是 python3.5 的新功能。 docs.python.org/3.4/library/asyncio-task.html#asyncio.coroutine 有一个在 3.4 中做同样事情的例子 【参考方案1】:

您的 OS X 机器和 ubuntu 机器上有不同版本的 python。

async def syntax was added in python 3.5。

没有希望在 python 3.4 上使用该语法。

【讨论】:

【参考方案2】:

用 @asyncio.coroutine / yield from 语法替换你的 async / await 函数,它应该可以工作

@asyncio.coroutine
def hello(websocket, path):
    yield from x

【讨论】:

以上是关于python asyncio 无效语法 ubuntu的主要内容,如果未能解决你的问题,请参考以下文章

python3.7中asyncio的具体实现

Python协程之asyncio

python asyncio 异步 I/O - 协程(Coroutine)与运行

asyncio--python3未来并发编程主流充满野心的模块

你必须要会uvloop!让Python asyncio异步编程性能直逼Go协程性能

@asyncio.coroutine 与 async def