回答編集履歴
3
修正
answer
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
self.load_extension('cogs.cogs')
|
49
49
|
|
50
50
|
async def on_ready(self):
|
51
|
-
print('bot is ready')
|
51
|
+
print('bot is ready.')
|
52
52
|
|
53
53
|
if __name__ == '__main__':
|
54
54
|
bot = LibeBot(command_prefix='.')
|
@@ -65,5 +65,5 @@
|
|
65
65
|
```
|
66
66
|
>python main.py
|
67
67
|
load extension.
|
68
|
-
bot is ready
|
68
|
+
bot is ready.
|
69
69
|
```
|
2
追記
answer
CHANGED
@@ -3,9 +3,7 @@
|
|
3
3
|
Extensionのパスはこの構成なら'cogs.cogs'になるんじゃないですかね。
|
4
4
|
あとcogs.pyに、runしないBotインスタンスが出現している意図がよく分からないのですがやめたほうがいいと思います。
|
5
5
|
|
6
|
-
---
|
7
|
-
|
8
|
-
追記
|
6
|
+
#追記
|
9
7
|
```py
|
10
8
|
INITIAL_EXTENSIONS = [
|
11
9
|
'cogs.LibeCog'
|
@@ -23,4 +21,49 @@
|
|
23
21
|
```
|
24
22
|
です。
|
25
23
|
|
26
|
-
あとcogs.pyでなぜか動かさないbotを定義していたりする意味がよく分かりません。名前も衝突してますしやめたほうがいいと思います。
|
24
|
+
あとcogs.pyでなぜか動かさないbotを定義していたりする意味がよく分かりません。名前も衝突してますしやめたほうがいいと思います。
|
25
|
+
|
26
|
+
|
27
|
+
#追記2
|
28
|
+
|
29
|
+
とりあえず自分の手元では以下で動作したのですが…
|
30
|
+
なにか構成に違いはありますか?モジュールの相対インポートは実行ファイルが基準になるのでディレクトリ構成次第になります。
|
31
|
+
全く同じにして、それでも動かないと言われるとちょっとお手上げですね…
|
32
|
+
|
33
|
+
###構成(treeコマンド出力結果)
|
34
|
+
```
|
35
|
+
.
|
36
|
+
├── cogs
|
37
|
+
│ └── cogs.py
|
38
|
+
└── main.py(実行スクリプト)
|
39
|
+
```
|
40
|
+
|
41
|
+
###main.py
|
42
|
+
```py
|
43
|
+
from discord.ext import commands
|
44
|
+
|
45
|
+
class LibeBot(commands.Bot):
|
46
|
+
def __init__(self, command_prefix):
|
47
|
+
super().__init__(command_prefix)
|
48
|
+
self.load_extension('cogs.cogs')
|
49
|
+
|
50
|
+
async def on_ready(self):
|
51
|
+
print('bot is ready')
|
52
|
+
|
53
|
+
if __name__ == '__main__':
|
54
|
+
bot = LibeBot(command_prefix='.')
|
55
|
+
bot.run('TOKEN')
|
56
|
+
```
|
57
|
+
|
58
|
+
###cogs/cogs.py
|
59
|
+
```py
|
60
|
+
def setup(bot):
|
61
|
+
print('load extension.')
|
62
|
+
```
|
63
|
+
|
64
|
+
###実行結果出力
|
65
|
+
```
|
66
|
+
>python main.py
|
67
|
+
load extension.
|
68
|
+
bot is ready
|
69
|
+
```
|
1
追記
answer
CHANGED
@@ -1,4 +1,26 @@
|
|
1
1
|
> ModuleNotFoundError: No module named 'cogs'
|
2
2
|
|
3
3
|
Extensionのパスはこの構成なら'cogs.cogs'になるんじゃないですかね。
|
4
|
-
あとcogs.pyに、runしないBotインスタンスが出現している意図がよく分からないのですがやめたほうがいいと思います。
|
4
|
+
あとcogs.pyに、runしないBotインスタンスが出現している意図がよく分からないのですがやめたほうがいいと思います。
|
5
|
+
|
6
|
+
---
|
7
|
+
|
8
|
+
追記
|
9
|
+
```py
|
10
|
+
INITIAL_EXTENSIONS = [
|
11
|
+
'cogs.LibeCog'
|
12
|
+
]
|
13
|
+
```
|
14
|
+
多分これ↑がおかしいです。
|
15
|
+
ExtensionはCogではありません。
|
16
|
+
pyファイルを指します。
|
17
|
+
またcogs.pyはcogsフォルダ下にあるためその階層を明記する必要があります。
|
18
|
+
なので
|
19
|
+
```py
|
20
|
+
INITIAL_EXTENSIONS = [
|
21
|
+
'cogs.cogs'
|
22
|
+
]
|
23
|
+
```
|
24
|
+
です。
|
25
|
+
|
26
|
+
あとcogs.pyでなぜか動かさないbotを定義していたりする意味がよく分かりません。名前も衝突してますしやめたほうがいいと思います。
|