質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

1回答

898閲覧

pythonでチャットボットを作るにあたってエラーが発生している

tec-koji

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2021/09/16 08:23

slackで、現在時刻を知らせてくれて、時間帯によって異なるメッセージを発するボットを作ろうとしています。
time.pyのほうで、

from slackbot.bot import respond_to from slackbot.bot import listen_to import datetime import time @listen_to('いま何時?') def res_time(message): dt_now=datetime.datetime.now() time_str=dt_now.strftime('%H時%M分ですよ。') message.send(time_str) if dt_now.hour==12: res="そろそろお昼食べたいね。" elif dt_now.hour==15: res="おやつ食べたいか?" else: res="少し休んだら" time.sleep(1) message.send(res)

と入力しました。これを、プログラムを実行させるファイル

from slackbot.bot import Bot def main(): bot=Bot() bot.run() if __name__ == "__main__": main()

のページでrun module をかけたところ、

Failed to import plugins.time Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/slackbot/manager.py", line 60, in _load_plugins import_module(module) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 846, in exec_module File "<frozen importlib._bootstrap_external>", line 983, in get_code File "<frozen importlib._bootstrap_external>", line 913, in source_to_code File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/Users/koji/Desktop/plugins/time.py", line 15 res="そろそろお昼食べたいね。" ^ IndentationError: expected an indented block

というエラーが発生してしまいました。
これは何が原因でこのようなエラーになっているのでしょうか?
また、どうすれば解決しますか?
どなたかアドバイスお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

インデント少ないか多いかのどちらかだと思います。
もう一度インデントがきちんと揃っているか確認してみてください

あとtime.pyというファイル名は標準ライブラリtimeと名前がかぶるので違う名前にした方が良いかと思いました
https://docs.python.org/ja/3/library/time.html

from slackbot.bot import respond_to from slackbot.bot import listen_to import datetime import time @listen_to('いま何時?') def res_time(message): dt_now = datetime.datetime.now() time_str = dt_now.strftime('%H時%M分ですよ。') message.send(time_str) if dt_now.hour == 12: res = "そろそろお昼食べたいね。" elif dt_now.hour == 15: res = "おやつ食べたいか?" else: res = "少し休んだら" time.sleep(1) message.send(res)

投稿2021/09/16 08:38

編集2021/09/17 04:03
holy_

総合スコア364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tec-koji

2021/09/16 20:16

インデントを念の為もう一度確認したのですが、揃っていました。 そうなると、インデント以外のところで問題が発生しているのですかね????
holy_

2021/09/17 04:11

一応私なりに揃えてみましたがどうでしょう?
holy_

2021/09/17 04:19

インデント以外となると難しいですね。 ディレクトリ構成とか開発環境とかライブラリのバージョンとか教えて頂きたいです
tec-koji

2021/09/17 06:53

原因がわかりました。 time.py と times.py を両方作成してしまっていたからエラーが起きていたと思います。 片方を消去してもう一度試したところ、エラーがなくなりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問