代码之家  ›  专栏  ›  技术社区  ›  incarnadine

不和谐音乐机器人

  •  1
  • incarnadine  · 技术社区  · 7 年前

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

    @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 回复  |  直到 7 年前
        1
  •  1
  •   F. Tamás    7 年前

    也许你的解决办法是 here 如果您使用的是virtualenv,请检查您的路径是否也存在。