Traceback (most recent call last): File "e:\APPDATA\github\discord-bot\discord-bot\bot.py", line 44, in bot.load_extension(f'cmds.{filename[:-3]}') File "C:\Python39\lib\site-packages\discord\ext\commands\bot.py", line 674, in load_extension spec = importlib.util.find_spec(name) File "C:\Python39\lib\importlib\util.py", line 94, in find_spec parent = __import__(parent_name, fromlist=['__path__']) ModuleNotFoundError: No module named 'cmds' PS E:\APPDATA\github\discord-bot> 如果出現以上錯誤應該如何解決呢?
我原先用for filename in os.listdir('./cmds'): print(filename)測試有沒有讀到cmds裡面的檔案(結果有) 但是修改成for filename in os.listdir('./cmds'): if filename.endswith('.py'): bot.load_extension(F'cmds.{filename[:-3]}')在discord [help卻讀取不到 請問該如何解決?
我的setting怎麼發生問題了 發生例外狀況: FileNotFoundError [Errno 2] No such file or directory: 'setting.json' File "C:\Users\Administrator\Desktop\Trash\GitHub\OAO\bot.py", line 7, in with open('setting.json', 'r', encoding='utf8') as jfile:
發生例外狀況: ExtensionFailed Extension 'cmds.img' raised an error: TypeError: module() takes at most 2 arguments (3 given) File "D:\個人\學習\Github Project\DiscordBot_01\cmds\img.py", line 4, in from core.classes import Cog_Extension File "D:\個人\學習\Github Project\DiscordBot_01\core\classes.py", line 5, in class Cog_Extension(commands.cog): The above exception was the direct cause of the following exception: File "D:\個人\學習\Github Project\DiscordBot_01\bot.py", line 36, in bot.load_extension(f'cmds.{Filename[:-3]}') #從檔名開頭取到倒數第三個字 看不出來哪裡錯
for filename in os.listdir("./cmds"): if filename.endswith(".py"): bot.load_extension(f"cmds.{filename[:-3]}") 程式無報錯,但在discord用help無法顯示出main和react 也有用下面程式測試過了,有跑出來main和react,請問是哪裡出了問題呢? import os for filename in os.listdir("./cmds"): print(filename)
大大我不知道你還會不會回但是我問問看 d:\user\Documents\GitHub\Goodbot\bot.py:38: RuntimeWarning: coroutine 'BotBase.load_extension' was never awaited bot.load_extension(f"cmds.{Filename[:-3]}") RuntimeWarning: Enable tracemalloc to get the object allocation traceback 在執行之後出現這個錯誤 機器人可以正常回應,但是Cog完全沒有載入 拜託了QwQ
想請問一下,我的程式寫: for filename in os.listdir('./cmds'): if filename.endswith('.py'): bot.load_extension(f'cmds.{filename[:-3]}') 結果按F5它跳出: 發生例外狀況: KeyError 'cmds.main' 請問怎麼處理?
發生例外狀況: ExtensionFailed Extension 'cmds.main' raised an error: ModuleNotFoundError: No module named 'core' File "C:\Users\kukah\OneDrive\文件\python\disocrd bot\cmds\main.py", line 3, in from core.classes import Cog_Extension The above exception was the direct cause of the following exception: File "C:\Users\kukah\OneDrive\文件\python\disocrd bot\bot.py", line 32, in bot.load_extension(f'cmds.{Filename[:-3]}') 這樣要怎麽辦
希望大大解答 for filename in os.listdir("C:\\Users\\user\\Desktop\\discord bot\\tut_bot\\cmds"): if filename.endswith(".py"): bot.load_extension(f"cmds.{filename[:-3]}") 在這一行出錯 Exception has occurred: ExtensionFailed Extension 'cmds.main' raised an error: ModuleNotFoundError: No module named 'tut_bot' File "C:\Users\user\Desktop\discord bot\tut_bot\cmds\main.py", line 3, in from tut_bot.classes import Cog_Extension The above exception was the direct cause of the following exception: File "C:\Users\user\Desktop\discord bot\tut_bot\bot.py", line 38, in bot.load_extension(f"cmds.{filename[:-3]}")
不好意思 目前其他指令都能正常運行,但就是load這些是無法執行的 想問一下這會是錯在哪裡呢? Ignoring exception in command reload: Traceback (most recent call last): File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke await ctx.command.invoke(ctx) File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 855, in invoke await self.prepare(ctx) File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 789, in prepare await self._parse_arguments(ctx) File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 697, in _parse_arguments transformed = await self.transform(ctx, param) File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 542, in transform raise MissingRequiredArgument(param) discord.ext.commands.errors.MissingRequiredArgument: extension is a required argument that is missing.
for Filename in os.listdir('./cmds'): if filename.endswith('.py'): bot.load_extension(f'cmds.{Filename[:-3]}') if __name__ = "__main__": bot.run(jdata['token']) vscode顯示 invalid syntax(name那邊)
哥 想請問下 for Filename in os.listdir('../cmds'): if Filename.endswith('.py'): bot.load_extension(F'cmds.{Filename[:-3]}') #總是問題出在這行 發生例外狀況: ModuleNotFoundError No module named 'cmds' File "D:\Vscode file\pythondc\pic\bot.py", line 46, in bot.load_extension(F'cmds.{Filename[:-3]}') 我看了您的影片不下十次 可以確定 main react 裡面都建置正確 from core.classes import cog_Extension也有正確導入 classes內容更是絲毫不差 目錄編排也是照您所編排 在ttt.py文件中 for filename in os.listdir('../cmds'): if filename.endswith('.py'): print(filename) 是能正確運行的 會印出 main.py react.py 可回到bot.py主檔案運行時 bot.load_extension(F'cmds.{Filename[:-3]}')就是抓不到檔案 如果可以還請麻煩幫我解惑下
我全部都跟你打的一樣,但他跟我說👇🏻,然後就不能開,有沒有辦法解決? 發生例外狀況: FileNotFoundError [WinError 3] 系統找不到指定的路徑。: './cmds' File "E:\UooiP\Project_1\bot.py", line 31, in for Filename in os.listdir('./cmds'):
一堆人在問 from .... import ... 會出現紅色波浪底線錯誤的問題.
不知道大家有沒有仔細看影片 就連我也有出現那個錯誤 但我依然能照樣運行
基本上那個錯誤是 VSCode 的 Python路徑設定的問題 但完全不影響執行
所以只要能正常執行可以不理會他 (想解決這問題 請自行google
除非你真的無法執行再來留言詢問 謝謝.
我照你講的打
然後我開啟檔案沒問題
但指令不能用
有用到from core.classes import Cog_extension
但他說找不到此指令
求解
我的是他直接不給執行
他說no module name core
@@楊曦曦 看下你指令?
Traceback (most recent call last):
File "e:\APPDATA\github\discord-bot\discord-bot\bot.py", line 44, in
bot.load_extension(f'cmds.{filename[:-3]}')
File "C:\Python39\lib\site-packages\discord\ext\commands\bot.py", line 674, in load_extension
spec = importlib.util.find_spec(name)
File "C:\Python39\lib\importlib\util.py", line 94, in find_spec
parent = __import__(parent_name, fromlist=['__path__'])
ModuleNotFoundError: No module named 'cmds'
PS E:\APPDATA\github\discord-bot>
如果出現以上錯誤應該如何解決呢?
喔天 這太棒了w
期末作品用raspberry pi做一隻python的doscor bot
你這個直接幫我一大把!
然後我找了一些文章據說form ... import ... 需要新增一個__init__.py的檔案
我不確定是不是必要的,所以我把if filename.endswith('.py')):
改成if filename.endswith('.py') and not(filename.startswith('__')):
避免把__init__.py也當成extension讀進去
阿米巴
python 的 import 的方式 的確是有些要注意的地方
不過我倒是沒聽說要加個什麼__init__.py的檔案
其實你在主檔案裡面加上:
if __name__ == __main__:
your code here
就好了
我想問餵甚麼我load跟unload都可以正常運作但是reload不會,而且終端不會報錯
我原先用for filename in os.listdir('./cmds'):
print(filename)測試有沒有讀到cmds裡面的檔案(結果有)
但是修改成for filename in os.listdir('./cmds'):
if filename.endswith('.py'):
bot.load_extension(F'cmds.{filename[:-3]}')在discord [help卻讀取不到
請問該如何解決?
我也是最近才開始學,發現load、reload、unload會因版本問題,寫法會不一樣
現在load、reload、unload被寫成coroutine,該行指令前面要加await,而且要用async函式包住
不知道是不是你遇到的問題,給你參考
請問需要end class嗎?
@proladon
no module named 'core' 請問這是什麼原因 我改怎麼救
準確來說 是我使用cog後bot能開啟 但無法使用指令
我的setting怎麼發生問題了
發生例外狀況: FileNotFoundError
[Errno 2] No such file or directory: 'setting.json'
File "C:\Users\Administrator\Desktop\Trash\GitHub\OAO\bot.py", line 7, in
with open('setting.json', 'r', encoding='utf8') as jfile:
發生例外狀況: ExtensionFailed
Extension 'cmds.img' raised an error: TypeError: module() takes at most 2 arguments (3 given)
File "D:\個人\學習\Github Project\DiscordBot_01\cmds\img.py", line 4, in
from core.classes import Cog_Extension
File "D:\個人\學習\Github Project\DiscordBot_01\core\classes.py", line 5, in
class Cog_Extension(commands.cog):
The above exception was the direct cause of the following exception:
File "D:\個人\學習\Github Project\DiscordBot_01\bot.py", line 36, in
bot.load_extension(f'cmds.{Filename[:-3]}') #從檔名開頭取到倒數第三個字
看不出來哪裡錯
你看一下你的classes.py中"class Cog_Extension(commands.Cog):"那行中最後的.Cog是不是大寫C,我剛遇到的問題應該跟你一樣
請問為什麼我讀不到檔案?
什麼叫讀不到檔...? 讀不到什麼檔?
不好意思 我不會通靈>﹏<
Proladon 我試了許多遍都不行,求幫忙🙏🏻
@@lungouo 什麼檔?
:(
@@朋睿顏 一年前啦...
for filename in os.listdir("./cmds"):
if filename.endswith(".py"):
bot.load_extension(f"cmds.{filename[:-3]}")
程式無報錯,但在discord用help無法顯示出main和react
也有用下面程式測試過了,有跑出來main和react,請問是哪裡出了問題呢?
import os
for filename in os.listdir("./cmds"):
print(filename)
卡一個,我猜是版本問題
*[這是從底下複製上來的]*
在主程式裡把它改成像這樣 :
import asyncio
async def main():
for Filename in os.listdir("./cmds"):
if Filename.endswith("py"):
await bot.load_extension(f"cmds.{Filename[:-3]}")
await bot.start(setting["TOKEN"])
if __name__=="__main__":
asyncio.run(main())
_-主程式原始參考 :-_
_-for Filename in os.listdir("./cmds"):-_
_-if Filename.endswith(".py"):-_
_-bot.load_extension(f"cmds.{Filename[:-3]}")-_
_-if __name_-_- == "_-_-main__":-_
_-bot.run(setting["TOKEN"])-_
-I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=-
還有在每個cog extension裡都要把setup加上async和await
範例 :
async def setup(bot):
await bot.add_cog(Main(bot))
_-原始參考 :-_
_-def setup(bot):-_
_-bot.add_cog(Main(bot))-_
大大我不知道你還會不會回但是我問問看
d:\user\Documents\GitHub\Goodbot\bot.py:38: RuntimeWarning: coroutine 'BotBase.load_extension' was never awaited
bot.load_extension(f"cmds.{Filename[:-3]}")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
在執行之後出現這個錯誤
機器人可以正常回應,但是Cog完全沒有載入
拜託了QwQ
同問
@@傅傳智+1
+1
@@11305205219 我後來好像有找到
commands.Bot物件下的方法都要await
老師好,我想問一下,照打程式也都能運作但就是bot一開的時候,他不會自動全部load進來,是不是寫法有改
只有我聽得這麼污嗎,我一直吧cog聽成cock...
母湯....
發生例外狀況: ExtensionNotFound
Extension 'command/img' could not be loaded.
我也遇到這個問題QAQ 請問有甚麼解決方法嗎?
想請問一下,我的程式寫:
for filename in os.listdir('./cmds'):
if filename.endswith('.py'):
bot.load_extension(f'cmds.{filename[:-3]}')
結果按F5它跳出:
發生例外狀況: KeyError
'cmds.main'
請問怎麼處理?
同問
讚! 最近很忙沒辦法常來捧場
謝啦ww
我不知道為甚麼我的react和bot.py裡的程式都沒辦法在help裡顯示出來,也沒辦法用,大大求解。
+1
discord.py 2.0版本以後 Bot.load_extension 變成協程了 所以在load unload reload都要加await 然後最下面的for 迴圈 上面也要async一個load_extension(): 最下面的bot.load.extension(f'cmds.{Filenamep[:-3]}')前面也要await
@@arontao9308 感謝補充 雖然是解決了 可是卻load不進去 沒看到報錯 會有什麼問題導致這樣嗎
在main裡把它改成像這樣
import asyncio
async def main():
for filename in os.listdir("./cmds"):
if filename.endswith("py"):
await bot.load_extension(f"cmds.{filename[:-3]}")
await bot.start(setups["token"])
if __name__=="__main__":
asyncio.run(main())
還有在每個cog extension裡都要把setup加上async和await
例:
async def setup(bot):
await bot.add_cog(your_cog(bot))
@@鄭宇辰-q9d 感謝👍
from core.classes import Cog_Extension
這行是不是不能用了
發生例外狀況: ExtensionFailed
Extension 'cmds.main' raised an error: ModuleNotFoundError: No module named 'core'
File "C:\Users\kukah\OneDrive\文件\python\disocrd bot\cmds\main.py", line 3, in
from core.classes import Cog_Extension
The above exception was the direct cause of the following exception:
File "C:\Users\kukah\OneDrive\文件\python\disocrd bot\bot.py", line 32, in
bot.load_extension(f'cmds.{Filename[:-3]}')
這樣要怎麽辦
Traceback (most recent call last):
File "C:\Users\XXX\Desktop\2BOT\bot.py", line 9, in
with open('setting.json', 'r' , encoding='utf8') as jFile:
jdata = json.load(jFile)
error
對?
這報錯看不出什麼.... 你這個報錯因該是只貼一半而已吧...
目前只看到 第9行 有問題而已
希望大大解答
for filename in os.listdir("C:\\Users\\user\\Desktop\\discord bot\\tut_bot\\cmds"):
if filename.endswith(".py"):
bot.load_extension(f"cmds.{filename[:-3]}") 在這一行出錯
Exception has occurred: ExtensionFailed
Extension 'cmds.main' raised an error: ModuleNotFoundError: No module named 'tut_bot'
File "C:\Users\user\Desktop\discord bot\tut_bot\cmds\main.py", line 3, in
from tut_bot.classes import Cog_Extension
The above exception was the direct cause of the following exception:
File "C:\Users\user\Desktop\discord bot\tut_bot\bot.py", line 38, in
bot.load_extension(f"cmds.{filename[:-3]}")
老師教的很棒 讓我獲益匪淺
*不太懂類別這部分...QQ只好先照著做*
不好意思
目前其他指令都能正常運行,但就是load這些是無法執行的
想問一下這會是錯在哪裡呢?
Ignoring exception in command reload:
Traceback (most recent call last):
File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 855, in invoke
await self.prepare(ctx)
File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 789, in prepare
await self._parse_arguments(ctx)
File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 697, in _parse_arguments
transformed = await self.transform(ctx, param)
File "C:\Users\Justin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 542, in transform
raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: extension is a required argument that is missing.
沒加extension參數
我寫好全部之後,我的ping指令沒有用,大大該如何解決呢?
受益良多 沒有任何問題 感謝耐心教學
希望可以常出片>< 受益匪淺!
for Filename in os.listdir('./cmds'):
if filename.endswith('.py'):
bot.load_extension(f'cmds.{Filename[:-3]}')
if __name__ = "__main__":
bot.run(jdata['token'])
vscode顯示
invalid syntax(name那邊)
大大我有問題,classes.py中def出現了紅色波浪底線錯誤,然後說The special method '__int__' expects 0 param(s), 1 was given,請問一下是甚麽問題
講解的超詳細,大感謝!
值得溫習好幾遍
如果我想把发出来的列表变成message_quote该怎么做?
发生异常: FileNotFoundError
[WinError 3] 系統找不到指定的路徑。: './cmds'
怎麼辦
找到了打完整路徑就有了
d:\python-training\Lcw_Bot-main\bot.py:33: RuntimeWarning: coroutine 'BotBase.load_extension' was never awaited
bot.load_extension(f'cmds.{extension}')
RuntimeWarning: Enable tracemalloc to get the object allocation
traceback
請問該怎麼解?
@bot.command()
async def load(ctx,extension):
bot.load_extension(f'cmds.{extension}')
await ctx.send(f'Loaded {extension} done.')
我的是斜線指令無法正常unloadㄟ
哥 想請問下
for Filename in os.listdir('../cmds'):
if Filename.endswith('.py'):
bot.load_extension(F'cmds.{Filename[:-3]}') #總是問題出在這行
發生例外狀況: ModuleNotFoundError
No module named 'cmds'
File "D:\Vscode file\pythondc\pic\bot.py", line 46, in
bot.load_extension(F'cmds.{Filename[:-3]}')
我看了您的影片不下十次
可以確定 main react 裡面都建置正確 from core.classes import cog_Extension也有正確導入
classes內容更是絲毫不差
目錄編排也是照您所編排
在ttt.py文件中
for filename in os.listdir('../cmds'):
if filename.endswith('.py'):
print(filename)
是能正確運行的 會印出 main.py react.py
可回到bot.py主檔案運行時 bot.load_extension(F'cmds.{Filename[:-3]}')就是抓不到檔案
如果可以還請麻煩幫我解惑下
'../cmds' 是因為多一個點嗎 刪掉如果還是錯誤可以用複製全部路徑試試看
我也遇到類似的問題
main react classes 皆照著影片裡打
在ttt.py中是能正確運行的 也會印出main.py react.py
但在bot.py中運行時卻抓不到檔案
想請問解決的方式
'./cmds' 不是 '../cmds' 你多打一個.
shelter-zone.github.io/Discord_Bot_FAQ/python/#load-extension-找不到-cmds
@@Proladon 您好~ 請問有discord或其他的聯絡方式嗎? 想把程式碼的照片傳給您 請教一些問題
python能不能有縮排沒對好的時候會報錯阿
搞了好幾小時 一直在重複慢慢看指令 還以為是版本不同
結果縮排縮一縮程式就會跑了 c的if end if沒對好就一直跳錯了..
是你的linter沒裝到吧
VSC安裝python的插件一般來說右下角會跳對話框問你要不要裝linter
你可以在VSC裡按F1然後打 linter
就會有一些linter的選項
其中有一個選擇linter的選項 如果你沒有他應該又會問你要不要裝
@@Proladon 我照你打的方式 選了一個 Disable Linting 他有自動新增了一個setting.json 不知道是不是我之前沒新增到
圖片在這裡: cdn.discordapp.com/attachments/868420889430093844/871737083608305754/unknown.png
14:20 "應"該
@proladon 我想問一下,為什麼你vscode新增檔案那麼快?
這跟你電腦的HDD或SSD有關
但跟VSCode一點關係都沒有 lol
@@Proladon 2:21 我的vscode沒有出現紅線,然後Barket的模組的括號也都不見了,這會跟機器人檔案有移動過有關嗎?
請問大大os 的定義是什麼 因為os.listdir 之後我就沒看懂
os 是python 內的一個模組,和random 一樣
os.listdir("A路徑") 的意思就是 取得A路徑 中所有的檔案
打得跟你一樣卻無法從core.classes輸入東西
很多人都說打得跟我一樣 然後每次傳圖來 都一堆打錯字跟縮排錯誤的 或是資料夾結構不一樣的…
所以你沒有提供你的程式碼或圖片我無法幫你解答哦~
如何像 help 那樣 後面有說明指令解釋
他的help是內建的 如果要自己改要
bot.remove_command("help")
受益良多
受益匪淺
我全部都跟你打的一樣,但他跟我說👇🏻,然後就不能開,有沒有辦法解決?
發生例外狀況: FileNotFoundError
[WinError 3] 系統找不到指定的路徑。: './cmds'
File "E:\UooiP\Project_1\bot.py", line 31, in
for Filename in os.listdir('./cmds'):
可能是你沒有資料夾 在你的Project_1資料夾裡面沒有叫cmds的資料夾
我已经按照视频了的,但是为什么在bot.load_extension那一行会报错
是因為沒在if內嗎tab的空格要注意看看
很清楚!!! 但麥克風有點小回音好困擾www
請問要如何自定義help?
再寫一個command 直接取名叫 help 就會覆蓋原本的help了
所以要加上面那一行嗎 還是不用??
抱歉忘記回
你可以remove掉
或是在最一開始的 bot=commands.Bot(prefix='-', help_command=None)
加上 help_command = None
就可以自定義help
@@Proladon 謝謝,但是我還是有一個問題。如果要關閉私人聊天指令的話,需要每一個指令都加If判斷式嗎?
@@151.04黃品綸 不需要。你可以上網搜尋一下 syntactic sugar 還有 decorator. 做起來會比每個指令加一個 if 好很多
您好,雖然影片有點久了,但還是很有幫助
也有在一開始就進行intents的調整
但是我在最後一步出了問題,希望您能替我解惑,終端機的錯誤如下:
>>Bot is online
你的碼能貼上來嗎?
@@Proladon
from ast import For
from email.policy import default
from fileinput import filename
import discord
from discord.ext import commands
import json
import os
with open('setting.json', mode='r', encoding='utf8') as jfile:
jdata = json.load(jfile)
intents = discord.Intents.all()
bot = commands.Bot(command_prefix='%',intents = intents)
#機器人啟動訊息
@bot.event
async def on_ready():
print(">>Bot is online
@@Proladon 修好了,發現是忘記打底線,謝謝
請問我在今天做完練習後我的ping功能壞掉該怎麼辦呢?,'Main' object has no attribute 'bot' ,他是顯示我的main裡面沒有bot的這個錯誤。(已經解決)
@commands.command()
async def ping(self, ctx):
await ctx.send(f"{round(self.bot.latency*1000)} (ms)")
原來是我在classes.py裡面的定義有打錯字