安装haslr时出现AttributeError: 'module' object has no attribute 'run'求助
问题根因
报错AttributeError: 'module' object has no attribute 'run'是因为你当前使用的Python版本过低:subprocess.run是Python 3.5版本才正式加入的标准库API,当使用Python 2.x或者3.5以下版本的Python 3运行haslr的Python脚本时,就会触发该错误。
解决步骤
- 首先确认系统已安装的Python版本,执行以下命令查看:
python --version python3 --version
如果所有返回的版本号均低于3.5,先安装Python 3.5及以上版本。
- 临时测试修复:直接指定高版本Python运行haslr脚本,示例如下(将路径替换为你本地实际的高版本Python路径):
/usr/bin/python3.8 /work/team/apps/haslr/bin/haslr.py -h
返回正常帮助信息即说明版本兼容没有问题。
- 永久修复可二选一:
- 修改haslr.py的shebang声明:打开
/work/team/apps/haslr/bin/haslr.py,将第一行的#!/usr/bin/env python修改为你本地高版本Python的路径,比如#!/usr/bin/env python3.8 - 修改当前用户的环境变量:将高版本Python的别名写入shell配置文件,比如执行
echo "alias python=/usr/bin/python3.8" >> ~/.bashrc && source ~/.bashrc,后续默认调用python就会指向高版本。
- 修改haslr.py的shebang声明:打开
- 修复完成后执行
haslr -h验证,无报错即可正常使用。
内容的提问来源于stack exchange,提问作者user977828
相关产品推荐
相关产品推荐

