首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SyntaxError:'await‘外部函数

SyntaxError:'await‘外部函数
EN

Stack Overflow用户
提问于 2019-10-19 14:19:11
回答 2查看 12.7K关注 0票数 7

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

代码语言:javascript
运行
复制
forecast = await darksky.get_forecast(
              ^
SyntaxError: 'await' outside function

此错误由以下原因引起:

代码语言:javascript
运行
复制
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 `[]`
)

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2020-09-18 02:28:21

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

但是asyncio的开发人员已经为你做了这件事。

代码语言:javascript
运行
复制
import asyncio

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

Stack Overflow用户

发布于 2019-10-19 16:02:41

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

解决方案是使用darksky = DarkSky(API_KEY)而不是darksky = DarkSkyAsync(API_KEY),而不是详细说明您想要实现什么以及如何实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58461052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档