Как инициализировать модуль Python Slackbot? - PullRequest
1 голос
/ 27 июня 2019

Я новичок в Slack-ботах (знаком с Discord.py). Я использую пакет Slackbot (https://github.com/lins05/slackbot) для создания моего слабого бота Python.

Следовал примеру на своей странице, установил пакет с помощью pip install slackbot, пошел по пути установки, создал slackbot_settings.py (с указанными ими тегами) и run.py в главном каталоге и mybot.py (с примерами команд, которые они показали на своей странице для тестирования), но я не могу инициализировать бота. Я пытался запустить бот, используя python run.py, но получаю следующую ошибку:

Traceback (most recent call last):
File "run.py", line 23, in
main()
File "run.py", line 20, in main
bot.run()
File "/Users/xxx/anaconda3/lib/python3.5/site-packages/slackbot/bot.py", line 32, in run
self._plugins.init_plugins()
File "/Users/xxx/anaconda3/lib/python3.5/site-packages/slackbot/manager.py", line 31, in init_plugins
self._load_plugins(plugin)
File "/Users/xxx/anaconda3/lib/python3.5/site-packages/slackbot/manager.py", line 47, in _load_plugins
path_name = importlib_find(plugin)
File "/Users/xxx/anaconda3/lib/python3.5/importlib/util.py", line 89, in find_spec
return _find_spec(fullname, parent.path)
AttributeError: module 'mybot' has no attribute 'path'

mybot.py имеет следующие строки:

from slackbot.bot import respond_to
from slackbot.bot import listen_to
import re

@respond_to('hi', re.IGNORECASE)
def hi(message):
    message.reply('I can understand hi or HI!')
    # react with thumb up emoji
    message.react('+1')

@respond_to('I love you')
def love(message):
    message.reply('I love you too!')

@listen_to('Can someone help me?')
def help(message):
    # Message is replied to the sender (prefixed with @user)
    message.reply('Yes, I can!')

    # Message is sent on the channel
    message.send('I can help everybody!')

    # Start a thread on the original message
    message.reply("Here's a threaded reply", in_thread=True)

Куда я иду не так? Я пытался спросить разработчика, но не получил ответа.

1 Ответ

1 голос
/ 28 июня 2019

Бот явно не может найти ваш плагин mybot. Предполагая, что mybot.py находится в той же папке, что и run.py, измените запись в PLUGINS на 'mybot'. Тогда это должно работать.

Полный пример slackbot_settings.py:

DEFAULT_REPLY = "Sorry but I didn't understand you"

PLUGINS = [    
    'mybot' 
]
...