2011-06-12 79 views
1

我試圖使用pycap捕獲以太網數據包http://pycap.sourceforge.net/。當我使用以下具有root權限的蟒蛇prompt命令,它正在Pycap不能在腳本中工作

>>>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) 

但是,如果我運行這些命令的腳本,我m到處以下錯誤

>>>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和im使用python2.6。那是問題嗎?

回答

5

使用pycap你的腳本稱爲pycap本身,所以import pycap進口本身(.通常是進口路徑上的第一個目錄)。因爲導入是緩存,所以這不會導致無限遞歸,而是給您一個對您自己的模塊的引用,這當然不會定義capture或其他任何內容。重命名它。

+0

哦..這真是一個愚蠢的錯誤。我怎麼會錯過它?它解決了問題..謝謝 – Netro 2011-06-12 17:22:34