【发布时间】:2021-08-21 23:17:25
【问题描述】:
目前我正在尝试为我的不和谐机器人清理我的文件夹结构,并在我的 cogs/commands 目录中有不同的子文件夹。每个子文件夹都是不同的命令类别。
但是,我在加载这些齿轮时遇到了困难。我收到以下错误:
[nodemon] starting `python main.py`
cogs\commands
1 - cogs\commands\general
2 - cogs\commands\general\help.py
Traceback (most recent call last):
File "F:\Discord Pandemic\main.py", line 372, in <module>
client.load_extension(f"cogs.{py_file}")
File "C:\Users\myalt\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\ext\commands\bot.py", line 676, in load_extension
raise errors.ExtensionNotFound(name)
discord.ext.commands.errors.ExtensionNotFound: Extension 'cogs.commands\\general\\help' could not be loaded.
即使文件路径正确?
print(py_file)
if py_file.endswith('.py'):
py_file = py_file[5:-3]
client.load_extension(f"{py_file}")
else:
for py_file in glob.glob(f"{py_file}/*"):
print(f"1 - {py_file}")
for py_file in glob.glob(f"{py_file}/*"):
print(f"2 - {py_file}")
if py_file.endswith('.py'):
py_file = py_file[5:-3]
client.load_extension(f"{py_file}")
print(f"Loaded {py_file}")
print(f"lol - {py_file}")
【问题讨论】:
-
你正在使用反斜杠加载扩展:
cogs.commands\\general\\help,它应该是一个点. -
哦,对了,我明白了。我应该如何用
.替换\\? -
你可以使用
py_file = py_file.replace("\\", ".")或者干脆不添加`\\` -
谢谢,刚试过.replace!
for py_file in glob.glob("cogs/*"): if py_file.endswith('.py'): py_file = py_file[5:-3] client.load_extension(f"cogs.{py_file}") else: for py_file in glob.glob(f"{py_file}/*"): for py_file in glob.glob(f"{py_file}/*"): if py_file.endswith('.py'): py_file = py_file[5:-3] print(f"Loaded " + py_file.replace('\\', '.')) client.load_extension("cogs." + py_file.replace('\\', '.'))我认为效果很好 :) 谢谢
标签: python discord discord.py