繁体   English   中英

语法错误:在 function 之外“等待”

[英]SyntaxError: 'await' outside function

您好,我是 python 的新手,我正在尝试使用 Detrous 制造的 Dark Sky python API。 当我运行演示代码时,出现错误:

forecast = await darksky.get_forecast(
              ^
SyntaxError: 'await' outside function

此错误源于:

forecast = await darksky.get_forecast(
    latitude, longitude,
    extend=False, # default `False`
    lang=languages.ENGLISH, # default `ENGLISH`
    units=units.AUTO, # default `auto`
    exclude=[weather.MINUTELY, weather.ALERTS] # default `[]`
)

我不太确定如何解决这个问题,我正在使用 python 3。

谢谢

我认为这个答案对于和我搜索相同问题的人很有用。 要在同步上下文中使用异步函数,您可以使用事件循环。 您可以出于教育目的从头开始编写它。 您可以从这个答案开始https://stackoverflow.com/a/51116910/14154287并继续阅读 David Beazley 的书籍。

但是 asyncio 的开发人员已经为您做到了这一点。

import asyncio

loop = asyncio.get_event_loop()
forecast = loop.run_until_complete(darksky.get_forecast(...<here place arguments>...))
loop.close()

await关键字只能在异步函数和方法中使用。 您可以阅读有关异步代码的更多信息以了解原因。

解决方案是使用darksky = DarkSky(API_KEY)而不是darksky = DarkSkyAsync(API_KEY) ,而没有任何关于您想要完成什么以及如何完成的细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM