這是我第一次在這個平臺上寫作。我在RPi上使用lavalink托管一個discord音樂機器人時遇到了一個錯誤。目前,我的問題是,有一行代碼出現了無效的語法錯誤。奇怪的是,當我在Windows 10上使用VSCode時,我并沒有得到這個錯誤。它在Win 10中也運行得很完美。我試著安裝了所需的軟體包,試圖搜索出可能是什么問題。我沒有發現任何結果。我想知道我的主要問題是什么。
主要代碼:
if (currentTrackData := player.fetch("currentTrackData")) != None:
embed.set_thumbnail(url=currentTrackData["thumbnail"]["genius"] )
embed.description = f"
[歌詞]({currentTrackData['link']['genius']}) | [ARTIST](https://genius.com/artists/{currentTrackData['author'].replace(' ', ' ')})"。
控制臺錯誤:
Traceback (most recent call last):
檔案 "/home/pi/.local/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 606, in _load_from_module_spec
spec.loader.exec_module(lib)
檔案 "<frozen importlib._bootstrap_external>", line 724, in exec_module
檔案 "<frozen importlib._bootstrap_external>", line 860, in get_code
檔案 "<rozen importlib._bootstrap_external>", 行 791, in source_to_code
檔案 "<rozen importlib._bootstrap>", line 219, in _call_with_frames_removed
檔案 "/home/pi/SpotBot/cogs/Music.py", line 168
if (currentTrackData := player.fetch("currentTrackData")) != None:
^
SyntaxError: 無效的語法
更何況我的RPi運行的是Raspbian x64。
uj5u.com熱心網友回復:
:= 語法(即賦值運算式)是在Python 3.8中引入的(例如,見https://docs.python.org/3/whatsnew/3.8.html),根據你分享的跟蹤記錄,你正在運行Python 3.7.
如果你想讓你的腳本在這個舊版本上運行,你就必須重寫它,使之不使用這個語法。例如,你可以從if的條件中提取賦值:
currentTrackData = player.fetch("currentTrackData"/span>)
if currentTrackData != None:
embed.set_thumbnail(url=currentTrackData["thumbnail"]["genius"])
embed.description = f"
[歌詞]({currentTrackData['link']['genius']}) | [ARTIST](https://genius.com/artists/{currentTrackData['author'].replace(' ', ' ')})"。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/307951.html
標籤:
