先说bug出现的条件
1。本人使用的kali2,内置了python3和python2,并且scapy已经安装,scapy在shell下使用没有问题,但写python脚本时。导入from scapy.all import *,提示No module named all。
现在想来还是对python使用不熟
解决:
首先查找你的python库所在的路径:通过以下脚本查找:
1 import sys 2 print sys.path
运行后如下:
['', '/usr/local/lib/python2.7/dist-packages/Paste-1.7.5.1-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
其中,'/usr/local/lib/python2.7/dist-packages'为自编译python库文件存放路径
kali默认把scapy安装到了/usr/lib/python3/dist-packages/ 文件夹下,而kali默认使用python2.7,所以导入scapy始终提示No module named all,现在我们只要把/usr/lib/python3/dist-packages/下的scapy复制到/usr/lib/python2.7/dist-packages下就能导入成功了。
总之一个原则,查看你使用的python版本,查看你现在python调用库的路径是什么,把scapy库复制一份到当前版本python调用库的路径下
当然有人可能会说我切换成python3不就行了么,这个方法我试过了,行不通,暂时不知道为什么