Burp Suite扩展报错ImportError: No module named requests解决方法
问题根因
Burp Suite 加载Python类型扩展时,依赖独立配置的Jython运行环境,和你在CMD中调用的系统Python环境完全隔离。系统Python路径下安装的requests模块不会被Jython默认扫描识别,因此加载扩展时会抛出ImportError: No module named requests错误。
可行解决方案
- 方案1:为Jython环境独立安装requests
- 打开Burp设置页,进入
Extensions > Python environment,确认当前配置的Jython standalone jar包的本地存储路径。 - 打开终端进入jar包所在目录,执行命令安装适配Python2的requests版本:
java -jar 你的jython-standalone jar文件名.jar -m pip install requests==2.27.1 - 安装完成后重启Burp,重新加载扩展即可正常导入模块。
- 打开Burp设置页,进入
- 方案2:手动配置Burp的模块加载路径
- 在系统CMD中执行命令,拿到系统Python存储第三方包的site-packages目录路径:
python -c "import requests;print(requests.__path__[0].rsplit('\\',1)[0])" - 回到Burp的Python环境配置页,找到「Folder for loading modules」配置项,把上一步拿到的路径填入输入框。
- 保存配置后重启Burp即可。
该方案仅适用于你安装的requests及相关依赖均为纯Python实现、无C扩展编译内容的场景,如果依赖包含C编译组件,Jython无法正常加载,优先选择方案1。
- 在系统CMD中执行命令,拿到系统Python存储第三方包的site-packages目录路径:
- 方案3:直接将requests源码放到扩展同目录
打开系统Python的site-packages目录,找到完整的requests文件夹,整个复制到你编写的Burp扩展py文件的同级目录下。Burp加载扩展时会优先扫描脚本所在目录的模块,无需额外配置即可正常导入。
补充注意:Jython目前仅支持Python2语法,请勿安装仅适配Python3的高版本requests,否则会出现语法兼容报错。
内容的提问来源于stack exchange,提问作者dusha
相关产品推荐
相关产品推荐

