本記事はPythonで作るSlackbotのファイル構成について説明するものです。
Botの開発が進んでいくとコードの行数やモジュールの数も増えていきます。
1ファイルに何百行もコードを書いたり同じディレクトリに何個もファイルを置いていると管理が煩雑になってきます。
Botのディレクトリの階層について理解しておき、計画的にモジュールを進めておきましょう。
今回は以下の3つのファイル構成について説明します。
・最もシンプルな構成
・モジュールを切り出した構成
・モジュールを切り出した構成(階層あり)
最もシンプルな構成
「bot.py」と「slackbot_settings.py」を2ファイルのみを行う構成です。
┣ bot.py
┗ slackbot_settings.py
会話はbot.pyに記述していきます。
◆記述例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # ライブラリの読み込み from slackbot.bot import Bot from slackbot.bot import respond_to from slackbot.bot import listen_to def main(): # Botの起動 bot = Bot() bot.run() # メンションあり応答 @respond_to('こんにちは') def greeting(message): # メンションして応答 message.reply('こんにちは!') if __name__ == "__main__": main() |
モジュールを切り出した構成
1階層でモジュールを切り出す方法です。
┣ bot.py
┣ slackbot_settings.py
┗ botmodules.py
bot.pyには「main()」のコードだけ記述しておき会話のコードは他のファイルに記述する例です。
外部モジュールを読み込む場合はプラグインの読み込みが必要です。
プラグインの読み込みは「slackbot_settings.py」で行います。
プラグインの記述の仕方
1 2 3 4 5 | PLUGINS = [ 'slackbot.plugins', 'botmodules', # ここにカンマ区切りでプラグインを追加していくことで拡張できます。 ] |
bot.pyに読み込む方法もあります。
モジュールを切り出した構成(階層あり)
モジュール用のディレクトリを作成してモジュールを格納する方法です。
ファイルが増えてくると一つの階層では管理しにくくなってくると思うので必要に応じてモジュールのディレクトリを追加していきましょう。
ディレクトリの階層を分ける場合は、第二層以降のフォルダに「 __init__.py」というファイルが必要です。
2階層の例
┣ bot.py
┣ slackbot_settings.py
┗ botmodules
__┣ __init__.py
__┗ module.py
プラグインの記述の仕方
1 2 3 4 | PLUGINS = [ 'slackbot.plugins', 'botmodules.module', ] |
3階層の例
┣ bot.py
┣ slackbot_settings.py
┗ botmodules
__┣ __init__.py
__┗ conversationmodules
____┣ __init__.py
____┗ conversation.py
プラグインの記述の仕方
1 2 3 4 | PLUGINS = [ 'slackbot.plugins', 'botmodules.conversationmodules.conversation', ] |
まとめ
今回はこの3つのディレクトリ構成について説明しました。
・最もシンプルな構成
・モジュールを切り出した構成
・モジュールを切り出した構成(階層あり)
開発が進んでいくとコードやモジュールの数が増えてくる為、モジュールやディレクトリの階層を適切に分けて管理することが大切です。
Slackbot+PythonまとめTOP>>Slackbotの作り方マニュアル〜Python編〜