我想在我的項目中使用Python3 fork of Scapy,但我無法使其運行時出現所有依賴項。我目前正在運行OSX Yosemite。特別是,看來Python3無法找到libdnet.so。我有Scapy在Python2中工作,所以我的系統上存在libdnet - 我如何才能在Python3中工作?是否支持Python3的libdnet版本?誤差如下:Python3無法找到libdnet - Scapy端口
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from scapy.all import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/all.py", line 16, in <module>
from .arch import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/__init__.py", line 75, in <module>
from .bsd import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/bsd.py", line 12, in <module>
from .unix import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/unix.py", line 21, in <module>
from .pcapdnet import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/pcapdnet.py", line 22, in <module>
from .cdnet import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/cdnet.py", line 17, in <module>
raise OSError("Cannot find libdnet.so")
OSError: Cannot find libdnet.so
由於
我是確定如何讓ctypes找到我的dnet庫 - 似乎libdnet只想安裝到Python2路徑。 如何禁用scnet的dnet? – Malikari
來自python文檔:在OS X上,find_library()會嘗試幾個預定義的命名方案和路徑來找到庫...不幸的是,我沒有OS X來告訴你如何安裝dnet。你能在你的硬盤上找到libdnet.so嗎?並將其複製到一些好的位置/ usr/local/lib或/ usr/lib?在得到OSError之後,你仍然可以使用scapy功能(發送/接收數據包除外)嗎? –
我在OS X機器上檢查過 - 你只需要用自制軟件http://brew.sh(brew install libdnet)安裝libdnet。如果成功,scapy可以正常工作。 –