不和谐音乐机器人

时间:2018-10-31 11:28:10

标签: python discord playback discord.py

我正在创建一个播放音乐的Discord机器人。它成功加入频道,但是在搜索音乐时返回错误。这是我的代码:

@client.command(pass_context=True)
async def play(ctx, url):
    server = ctx.message.server
    await client.join_voice_channel(ctx.message.author.voice.voice_channel)
    voice_client = client.voice_client_in(server)
    player = await voice_client.create_ytdl_player(url)
    players[server.id] = player
    player.start()

哪个返回此错误:

[youtube] vRquPxdHNGE: Downloading webpage
[youtube] vRquPxdHNGE: Downloading video info webpage
Ignoring exception in command play
Traceback (most recent call last):
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\voice_client.py", line 431, in create_ffmpeg_player
    p = subprocess.Popen(args, stdin=stdin, stdout=subprocess.PIPE, 
stderr=stderr)
  File 
"C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\subprocess.py", 
line 709, in __init__
    restore_signals, start_new_session)
  File 
"C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\subprocess.py", 
line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\core.py", line 50, in wrapped
    ret = yield from coro(*args, **kwargs)
  File "F:\.Computer Science\Python\bot.py", line 49, in play
    player = await voice_client.create_ytdl_player(url)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\voice_client.py", line 541, in create_ytdl_player
    player = self.create_ffmpeg_player(download_url, **kwargs)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\voice_client.py", line 434, in create_ffmpeg_player
    raise ClientException('ffmpeg/avconv was not found in your PATH 
environment variable') from e
discord.errors.ClientException: ffmpeg/avconv was not found in your PATH 
environment variable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\bot.py", line 846, in process_commands
    yield from command.invoke(ctx)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\core.py", line 374, in invoke
    yield from injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\core.py", line 54, in wrapped
    raise CommandInvokeError(e) from e
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: 
ClientException: ffmpeg/avconv was not found in your PATH environment 
variable

有人知道为什么这样做或如何解决吗?我正在使用Python 3.6.7和最新的Discord模块。

1 个答案:

答案 0 :(得分:1)

也许您的解决方案可以是here,如果您使用virtualenv,请检查PATH是否也存在。