如何解决Mordor-Elastic.py运行时progressbar streams属性缺失报错?
故障排查:Mordor-Elastic.py进度条功能报错
AttributeError: module 'progressbar' has no attribute 'streams' 我尝试用Mordor-Elastic.py脚本将安全日志数据集发送到Elasticsearch集群,但脚本的进度条功能无法正常运行。
示例执行命令:
python Mordor-Elastic.py --url http://10.0.0.103:9200 inputs dataset.json
执行后出现报错:
Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: module 'progressbar' has no attribute 'streams'
我曾将progressbar模块降级至2.5版本(该版本原本包含streams属性),但问题仍未解决。执行pip show progressbar输出如下:
pip show progressbar Name: progressbar Version: 2.5 Summary: Text progress bar library for Python. Home-page: http://code.google.com/p/python-progressbar Author: Nilton Volpato Author-email: nilton.volpato@gmail.com License: LICENSE.txt Location: c:\users\user1\appdata\local\programs\python\python310\lib\site-packages Requires: Required-by:
故障排查思路
- 检查Python环境模块冲突:执行
pip list | grep progressbar,确认是否同时安装了progressbar和progressbar2(后者是fork版本,可能覆盖原模块),若有则卸载多余的模块。 - 验证模块实际加载路径:在Python交互环境中执行
import progressbar; print(progressbar.__file__),对比输出路径和pip show显示的安装路径是否一致,若不一致说明加载了其他位置的错误模块,需清理对应路径的残留文件。 - 测试Python版本兼容性:progressbar 2.5发布时间较早,可能与Python 3.10存在兼容性问题,尝试在Python 3.8/3.9等较低版本环境中运行脚本。
- 检查脚本调用逻辑:查看Mordor-Elastic.py中对progressbar的引用代码,确认是否存在拼写错误或特殊依赖结构,必要时修改脚本中progressbar的调用方式适配当前环境。
- 彻底重装模块:先执行
pip uninstall -y progressbar完全卸载,手动清理安装目录下的残留文件后,再重新安装2.5版本:pip install progressbar==2.5。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

