Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';我将放弃我的第一个python项目,这是制作一个discord机器人,这将是我的最后一个问题?_Python_Discord_Discord.py - Fatal编程技术网

I';我将放弃我的第一个python项目,这是制作一个discord机器人,这将是我的最后一个问题?

I';我将放弃我的第一个python项目,这是制作一个discord机器人,这将是我的最后一个问题?,python,discord,discord.py,Python,Discord,Discord.py,我在这个项目中不断遇到错误,这可能是我最后一次尝试修复 下面是出现问题的代码: @classmethod async def from_url(cls, url, *, loop=None, stream=False): loop = loop or asyncio.get_event_loop() data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, downloa

我在这个项目中不断遇到错误,这可能是我最后一次尝试修复 下面是出现问题的代码:

 @classmethod
    async def from_url(cls, url, *, loop=None, stream=False):
        loop = loop or asyncio.get_event_loop()
        data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))

        if 'entries' in data:
            # take first item from a playlist
            data = data['entries'][0]

        filename = data['url'] if stream else ytdl.prepare_filename(data)
        return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)
这就是错误:

Ignoring exception in command play:
Traceback (most recent call last):
  File "C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:\Users\moham\Desktop\musicbot.py", line 104, in play
    player = await YTDLSource.from_url(queue, loop=client.loop)
  File "C:\Users\moham\Desktop\musicbot.py", line 40, in from_url
    data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))
  File "C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\concurrent\futures\thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\Users\moham\Desktop\musicbot.py", line 40, in <lambda>
    data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))
  File "C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site-packages\youtube_dl\YoutubeDL.py", line 788, in extract_info
    if not ie.suitable(url):
  File "C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site-packages\youtube_dl\extractor\common.py", line 413, in suitable
    return cls._VALID_URL_RE.match(url) is not None
TypeError: expected string or bytes-like object

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

Traceback (most recent call last):
  File "C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 903, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 859, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: expected string or bytes-like object
忽略命令播放中的异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site packages\discord\ext\commands\core.py”,第85行,包装为
ret=等待coro(*args,**kwargs)
文件“C:\Users\moham\Desktop\musicbot.py”,第104行,正在播放中
player=wait YTDLSource.from_url(队列,循环=client.loop)
文件“C:\Users\moham\Desktop\musicbot.py”,第40行,在from\u url中
数据=等待循环。在执行器中运行(无,lambda:ytdl。提取信息(url,下载=非流))
文件“C:\Users\moham\AppData\Local\Programs\Python 38-32\lib\concurrent\futures\thread.py”,第57行,正在运行
结果=self.fn(*self.args,**self.kwargs)
文件“C:\Users\moham\Desktop\musicbot.py”,第40行,在
数据=等待循环。在执行器中运行(无,lambda:ytdl。提取信息(url,下载=非流))
文件“C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site packages\youtube\u dl\YoutubeDL.py”,第788行,摘录信息
如果不适合(url):
文件“C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site packages\youtube\u dl\extractor\common.py”,第413行,以适当的格式
返回cls.\u有效\u URL\u重新匹配(URL)不是无
TypeError:应为字符串或类似字节的对象
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site packages\discord\ext\commands\bot.py”,第903行,在invoke中
等待ctx.command.invoke(ctx)
文件“C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site packages\discord\ext\commands\core.py”,第859行,在invoke中
等待注入(*ctx.args,**ctx.kwargs)
文件“C:\Users\moham\AppData\Local\Programs\Python\Python38-32\lib\site packages\discord\ext\commands\core.py”,第94行,包装为
从exc引发CommandInvokeError(exc)
discord.ext.commands.errors.CommandInvokeError:命令引发异常:TypeError:应为字符串或类似字节的对象

我对这一切还是新手,所以请假设我对编码不太了解,我只是在学习一个教程,显然我甚至不擅长lol。

这听起来根本不像
url
是一个url。我坚信discord bot不是你应该开始的项目,因为你需要知道基本知识。从官方python教程或任何你喜欢的其他教程开始,然后你可以尝试进一步学习。是的,我看到很多人将精巧的库作为他们的第一个项目。这会让你感到沮丧。我没有使用任何复杂的库,直到我已经编写了大约一年的程序。学习基础知识(如调试和学习不读取错误消息)远比立即转向更有趣的内容(不幸的是)重要得多。不过,正如前面的评论所述,
url
似乎不是有效的url。您需要再次检查传入此函数的内容。我们不能这么说,因为这里的代码中没有这一点。当您提供。您使用多个参数定义函数,但不显示如何调用它(命令和参数)。如果代码可以被复制/粘贴并轻松运行,那么帮助就会很快发生。享受调试,这是有趣的部分。