【问题标题】:Problems with lavalink discord.py botlavalink discord.py 机器人的问题
【发布时间】:2021-01-21 04:52:38
【问题描述】:

我正在尝试在我的机器人上实现一个基于https://github.com/stuyy/Lavalink-Discordpy-Examplelavalinkdicord.py 的音乐机器人。在将它托管在 heroku 之前,我试图在我的计算机上运行它,但我遇到了这个错误:


Ignoring exception in on_ready
Traceback (most recent call last):
  File "C:\Users\grmap\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\bot.py", line 607, in _load_from_module_spec
    spec.loader.exec_module(lib)
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\grmap\Desktop\discor-bot_py3.6\cogs\music.py", line 2, in <module>     
    import lavalink
ModuleNotFoundError: No module named 'lavalink'

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

Traceback (most recent call last):
  File "C:\Users\grmap\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "index.py", line 95, in on_ready
    bot.load_extension('cogs.music')
  File "C:\Users\grmap\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\bot.py", line 664, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\grmap\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\bot.py", line 610, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.ext.commands.errors.ExtensionFailed: Extension 'cogs.music' raised an error: ModuleNotFoundError: No module named 'lavalink'

这些是我项目中的文件,机器人使用的是 python 3.6.12。我正在使用 Anaconda 在 Windows 10 上创建 pipenv。

这是显示 pip 冻结的内容:

aiohttp==3.6.2
appdirs==1.4.3
async-timeout==3.0.1
attrs==20.2.0
certifi==2020.6.20
cffi==1.14.3
chardet==3.0.4
discord.py==1.5.0
distlib==0.3.0
filelock==3.0.12
idna==2.10
idna-ssl==1.1.0
importlib-metadata==1.5.0
importlib-resources==1.3.1
lavalink==3.1.2
multidict==4.7.6
pipenv==2018.11.26
pycparser==2.20
PyNaCl==1.3.0
six==1.14.0
typing-extensions==3.7.4.3
virtualenv==20.0.10
virtualenv-clone==0.5.3
wincertstore==0.2
yarl==1.6.0
zipp==3.1.0

我已经在我的电脑上安装了lavalink,但由于某种原因它不起作用。知道它可能是什么吗?提前致谢。

[编辑] 我对其他python脚本也有类似的问题,问题是我已经在anaconda环境之外安装了python,并且出于任何原因,当iIexecute文件而不是使用python环境版本时,它使用了我电脑上安装的python,这是3.7.2。 @dzang 是对的。

【问题讨论】:

    标签: python discord bots discord.py


    【解决方案1】:

    您还需要在您用于项目的同一环境中安装带有pip install lavalink 的python 绑定。

    编辑:

    好的,所以您需要了解环境的工作原理。基本上这里的问题是您在一个环境中安装了lavalink,但是您正在使用另一个环境来运行您的代码。我怎么看这个? 因为在错误中我读到了C:\Users\grmap\AppData\Local\Programs\Python\Python37...,所以这意味着您正在使用 Python 安装,而不是 Anaconda 安装。

    在终端中,您可以通过键入 where python 来检查您在 Windows 中使用的 python。

    当您使用pip 安装某些东西时,您应该确保您使用的是要安装软件包的环境中的pip.exe,否则解释器将找不到它。

    使用 Anaconda,您可以使用 conda create -n myenv python=3.7 创建环境 并使用conda activate myenv 激活它 然后你可以在那里安装你的包。在 PyCharm 中,您需要选择正确的环境解释器。

    我不熟悉 pyenv,但如果你使用 anaconda 环境,基本上就不需要了。概念是一样的,您需要激活环境或直接指向正确的 pip.exe,在您的情况下,它位于 C:\Users\grmap\AppData\Local\Programs\Python\Python37\ 的某个位置。

    就是这样,每个环境都有自己的python.exepip.exe 以及一组包。

    【讨论】:

    • 我已经安装了,不知道有没有办法显示
    • 你可以用pip freeze查看安装了哪些包。另外,当您在终端中运行python -c "import lavalink" 时,您会看到什么?
    • 它太长了,但是关于lavalink它显示lavalink==3.1.2
    • PS C:\Users[...]\discor-bot_py3.6> py -c "import lavalink" Traceback(最近一次调用最后):文件“”,第 1 行,在 ModuleNotFoundError: No module named 'lavalink'
    • 我正在使用 anaconda 在 Windows 10 上创建 pipenv
    猜你喜欢
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2021-05-03
    • 2021-11-29
    • 1970-01-01
    • 2021-10-07
    • 2021-03-29
    • 2021-10-20
    相关资源
    最近更新 更多