Scapy安装问题。似乎什么都没有安装?
我有一台运行Leopard系统的苹果电脑,装的是python 2.6。我下载了最新版本的scapy,并运行了“python setup.py install
”。一切都很顺利。可是,当我试着通过输入“scapy”来启动它的交互模式时,却出现了一堆错误。怎么回事啊!
为了保险起见,这里是完整的错误信息……
INFO: Can't import python gnuplot wrapper . Won't be able to plot.
INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().
ERROR: Unable to import pcap module: No module named pcap/No module named pcapy
ERROR: Unable to import dnet module: No module named dnet
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 122, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 34, in _run_code
exec code in run_globals
File "/Users/owner1/Downloads/scapy-2.1.0/scapy/__init__.py", line 10, in <module>
interact()
File "scapy/main.py", line 245, in interact
scapy_builtins = __import__("all",globals(),locals(),".").__dict__
File "scapy/all.py", line 25, in <module>
from route6 import *
File "scapy/route6.py", line 264, in <module>
conf.route6 = Route6()
File "scapy/route6.py", line 26, in __init__
self.resync()
File "scapy/route6.py", line 39, in resync
self.routes = read_routes6()
File "scapy/arch/unix.py", line 147, in read_routes6
lifaddr = in6_getifaddr()
File "scapy/arch/unix.py", line 123, in in6_getifaddr
i = dnet.intf()
NameError: global name 'dnet' is not defined
6 个回答
1
我收集了在Windows上进行Python网络编程所需的所有库,并制作了一个集成的安装程序。你可以在Google Code上找到它。只需解压缩并运行安装程序,记得先阅读安装文件,这样就可以安装运行Scapy所需的所有依赖项,适用于Py2.6。
7
我在我的Mac上安装Scapy及其依赖时遇到了很多问题,最后我找到了Homebrew Python的GitHub页面 https://github.com/Homebrew/homebrew-python,里面有很多有用的安装公式,其中一个针对Scapy的安装公式对我来说非常好用。
brew tap Homebrew/python
brew install scapy
我还遇到了关于pcapy的问题,这个问题通过这个库里的另一个公式pypcap解决了,所以步骤是一样的。
brew install pypcap
12
按照scapy网站上的说明进行操作。在安装之前,你需要先解决一些依赖问题。对我来说,这在Windows电脑上运行得非常顺利。
http://www.secdev.org/projects/scapy/doc/installation.html#mac-os-x