2014-03-02 51 views
0

我已經從我的Ubuntu機器上安裝了Scapy軟件包(Python 2.7),並且我試圖從一個文件運行此代碼:每次調用Scapy AttributeError:'模塊'對象沒有屬性'*'

import scapy 
dg = scapy.IP() 
pcap = scapy.rdpcap("../tst/Http.cap") 
scapy.send(IP()) 

運行提供了錯誤, AttributeError: 'module' object has no attribute 'IP'

註釋掉上線3和運行提供了錯誤的IP電話, AttributeError: 'module' object has no attribute 'rdpcap'

而且註釋掉第4行,你會得到, AttributeError: 'module' object has no attribute 'send'

有趣的是,當用''python''調用該代碼時失敗,但當我手動輸入每個命令到Python shell時,它的工作方式與預期的一樣。我在三個新的Python安裝中觀察了這種行爲 - 兩個在Ubuntu中,另一個在Windows中。任何人都可以看到這個錯誤的原因嗎?

回答

3

您需要將Scapy導入到全局名稱空間中。

Scapy module documentation -

注:從scapy.all進口*,而不是從Scapy的進口* Scapy的V2使用。

也發現在"Using Scapy to build your own tools"

所以,你的代碼應該是 -

from scapy.all import * 

dg = IP() 
pcap = rdpcap("../tst/Http.cap") 
send(IP()) 
+0

您好,感謝您的回覆。我已經做出了這一改變,但錯誤仍然存​​在。 – ILikeFood

+1

又看了一下,修正了一些東西,現在它正在工作。謝謝! – ILikeFood

相關問題