Pycap不在脚本中工作

时间:2011-06-12 17:14:46

标签: python

我试图使用pycap http://pycap.sourceforge.net/捕获以太网数据包。当我在具有root权限的python提示符上使用以下命令时,它正在工作

>>>import pycap.capture
>>>p = pycap.capture.capture("wlan0")
>>>p.next()
(Ethernet(type=0x608, 00:1b:b1:46:53:5d -> ff:ff:ff:ff:ff:ff), ARP(op=0x1, protocol=0x800,     00:1b:b1:46:53:5d (192.16.68.10) -> 00:00:00:00:00:00 (192.16.110.39)), '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 1307898356.222398)

但如果我将这些命令作为脚本运行,则会出现以下错误

>>>sudo python pycap.py
Traceback (most recent call last):
  File "pycap.py", line 2, in <module>
  from pycap import *
  File "/home/nikhil/Code/Python/pycap.py", line 5, in <module>
  p = capture.capture(device)
  NameError: name 'capture' is not defined

有什么建议吗? pycap http://pycap.sourceforge.net/说它需要python2.3并使用python2.6。这是一个问题吗?

1 个答案:

答案 0 :(得分:5)

使用pycap的脚本本身称为pycap,因此import pycap导入自身(.通常是导入路径上的第一个目录)。因为导入是缓存,所以这不会导致无限递归,而是为您提供对自己模块的引用,当然这不会定义capture或其他任何内容。重命名。