teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2021/10/03 22:49

投稿

kairi003
kairi003

スコア1332

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

追記

2021/10/03 22:48

投稿

kairi003
kairi003

スコア1332

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

追記

2021/10/03 22:44

投稿

kairi003
kairi003

スコア1332

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を定義していたりする意味がよく分かりません。名前も衝突してますしやめたほうがいいと思います。