【发布时间】:2020-12-22 14:43:50
【问题描述】:
我尝试运行我的程序,我尝试过 import scapy 然后 import scapy.all 但会出现同样的错误。如果有帮助,我正在使用 kali-linux。导致错误的代码只是来自scapy.all import *
这是完整的错误输出:
Traceback (most recent call last):
File "/home/bradz/test.py", line 24, in <module>
from scapy.all import send, IP, TCP, ARP
File "/usr/local/lib/python3.9/dist-packages/scapy/all.py", line 16, in <module>
from scapy.arch import *
File "/usr/local/lib/python3.9/dist-packages/scapy/arch/__init__.py", line 27, in <module>
from scapy.arch.bpf.core import get_if_raw_addr<br/>
File "/usr/local/lib/python3.9/dist-packages/scapy/arch/bpf/core.py", line 30, in <module>
LIBC = cdll.LoadLibrary(find_library("libc"))
File "/usr/lib/python3.9/ctypes/util.py", line 341, in find_library
_get_soname(_findLib_gcc(name)) or _get_soname(_findLib_ld(name))
File "/usr/lib/python3.9/ctypes/util.py", line 147, in _findLib_gcc
if not _is_elf(file):
File "/usr/lib/python3.9/ctypes/util.py", line 99, in _is_elf
with open(filename, 'br') as thefile:
FileNotFoundError: [Errno 2] No such file or directory: b'liblibc.a'
修复它。你需要去:
/usr/lib/python3/dist-packages/scapy/arch/bpf/core.py
并编辑该行
LIBC = cdll.LoadLibrary(find_library("libc"))
到
LIBC = cdll.LoadLibrary(find_library("c"))
【问题讨论】:
-
试图回滚到旧版本,它仍然有同样的问题,但它在 python2 而不是 python3 中也能正常工作
-
使用相同版本的 CPython,回滚将不起作用。您需要回滚 Python 版本,或更新 Scapy(首选方式)。
-
仅供参考,您可以发布您的解决方法作为答案。那里会更合适。
标签: python scapy kali-linux