簡體   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