如何解决ImportError: No module named 'telebot'错误

4

我正在配置一个机器人以从Zabbix发送警报,因此我安装了Python和以下模块:

sudo apt install python python-pip python-setuptools

之后,我安装了机器人 API 以便在 Zabbix 上使用:

python -m pip install --user pyTelegramBotAPI

/usr/lib/zabbix/alertscripts/中创建了脚本:

#!/usr/bin/env python

import telebot,sys

BOT_TOKEN='123TOKENAQUI321'
DESTINATION=sys.argv[1]
SUBJECT=sys.argv[2]
MESSAGE=sys.argv[3]

MESSAGE = MESSAGE.replace('/n','\n')
tb = telebot.TeleBot(BOT_TOKEN)
tb.send_message(DESTINATION,SUBJECT + '\n' + MESSAGE)

修改权限:

sudo chmod +x telegram

sudo chown -R zabbix telegram

当在终端或Zabbix上测试脚本时,会出现以下错误:

Traceback (most recent call last): File "/usr/lib/zabbix/alertscripts/telegram", line 2, in import telebot,sys ImportError: No module named 'telebot'

我尝试通过安装模块来解决问题:

python -m pip install --user telebot

安装该模块并没有解决问题,因此我尝试使用Python3,在终端上运行脚本成功了,但是在Zabbix中仍然显示相同的错误。最终我又回到了Python。
使用pip list命令无法找到telebot模块,只有在Python终端中使用help("modules")命令才能看到它。
有人知道造成这个问题的原因吗?

你正在使用Python3吗?尝试使用pip3 install而不是pip install。 - Harsh Bafna
我已经尝试使用python3和pip3,然后通过终端发送消息成功了,但在Zabbix中仍然出现相同的错误。 - Lucas SF
2个回答

7

我用python3成功解决了这个问题,但是这一次在重新安装之前,我完全卸载了其他版本的python,具体步骤如下:

sudo python -m pip uninstall pyTelegramBotAPI
sudo apt remove python python-pip python-setuptools
sudo apt install python3 python3-pip python3-setuptools python3-six
sudo python3 -m pip install pyTelegramBotAPI six
sudo pip install six

1

如果遇到这样的错误,请重新安装该库或在安装时使用 (--upgrade) 命令!

例如:

pip uninstall telebot
pip install pyTelegramBotAPI
pip install pytelegrambotapi --upgrade

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接