故障现象
运行 /usr/lib/zabbix/alertscripts/dingtalk-robot.py 时报错:
ModuleNotFoundError: No module named 'requests'故障原因
Python 环境中缺少 requests 模块。该模块是脚本中用于发送 HTTP 请求的必要依赖。
解决方案
方法一:使用系统包管理器安装(推荐)
CentOS/RHEL 系统:
sudo yum install python3-requests -yUbuntu/Debian 系统:
sudo apt install python3-requests -y方法二:使用 pip 安装
# 使用 pip3 安装(需要 root 权限)
sudo pip3 install requests
# 或者安装到用户目录(无需 root 权限)
pip3 install --user requests验证安装
python3 -c "import requests; print('requests 版本:', requests.__version__)"重新运行脚本
python3 /usr/lib/zabbix/alertscripts/dingtalk-robot.py注意事项
- Python 版本:脚本使用
#!/usr/bin/env python,可能调用 Python 2。建议明确使用python3运行。 执行权限:确保脚本有执行权限:
chmod +x /usr/lib/zabbix/alertscripts/dingtalk-robot.py- 目录权限:检查
/usr/lib/zabbix/alertscripts/目录权限是否正确。 - Zabbix 用户:如果 Zabbix 服务以特定用户运行,需要确保该用户也有
requests模块。
常见问题
Q: 安装后仍然报错怎么办?
A: 检查 Python 路径是否正确:
which python3
python3 -c "import sys; print(sys.path)"Q: 如何检查哪些 Python 环境已安装 requests?
A:
python3 -m pip list | grep requestsQ: 在 Zabbix 告警脚本中如何指定 Python 版本?
A: 修改脚本第一行为:
#!/usr/bin/python3