SyntaxError:“等待”外部函数

您好,我是 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`

   .ENGLISH, # default `ENGLISH`

    units=units.AUTO, # default `auto`

    exclude=[weather.MINUTELY, weather.ALERTS] # default `[]`

)

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


谢谢


翻阅古今
浏览 465回答 2
2回答

芜湖不芜

我认为这个答案对于和我搜索相同问题的人很有用。要在同步上下文中使用异步函数,您可以使用事件循环。您可以出于教育目的从头开始编写它。您可以从这个答案开始 https://stackoverflow.com/a/51116910/14154287 并继续阅读 David Beazley 的书籍。但是 asyncio 的开发人员已经为您做到了这一点。import asyncioloop = asyncio.get_event_loop()forecast = loop.run_until_complete(darksky.get_forecast(...<here place arguments>...))loop.close()

哔哔one

该await关键字只能在异步函数和方法中使用。您可以阅读有关异步代码的更多信息以了解原因。解决方案是使用darksky = DarkSky(API_KEY)而不是darksky = DarkSkyAsync(API_KEY).
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python