ip sniff과 같은 기능을 구현하려고 주말동안 자료를 조사하고 코드를 짜려고 했었다. 하지만, 에러가 났었는데 Scapy가 libpcap을 잡지 못하는 경우가 있었다.
WARNING: Cannot set filter: libpcap is not available. Cannot compile filter !
from scapy.all import *
conf.use_pcap = True
WARNING: No libpcap provider available ! pcap won't be used
관련 페이지: https://scapy.readthedocs.io/en/latest/installation.html

처음에는 brew를 통해서 libpcap을 설치를 하면 해결될 것으로 생각됐지만, libpcap을 몇번을 설치해도 잡지 못하는 경우가 있었다. scapy가 libpcap을 못 잡는 것 같아 환경변수도 다시 설정해보고, scapy에서 conf class를 불러 직접 연결을 해보거나, conda나 다른 라이브러리가 문제인건가 싶어 삭제 해보는 등 온갖 노력을 해봤지만 헛수고였다.
무엇이 문제일까 이틀 동안 고민하다, 겨우 내가 원하는 답을 얻은 것 같다.
스택 오버플로우에 보면 첫번째 답에 그에 대한 해답이 나와있는데 MAC OS X와 python3의 오래된 버전들은 컴파일을 할 때 외부 라이브러리를 인식하지 못하는 경우가 있다. 이는 MAC OS X의 버전에 상관없이 python3가 오래되었다면 일부 라이브러리에서 일어나는 버그인 것으로 보인다. 일어나는 python 버전은 3.8, 3.9, 3.10 버전인 것으로 알려져있다.
python MAC OS X 최신 버전: https://www.python.org/downloads/macos/
최신 python 버전으로 설치하면 된다. 하지만, 3.11.3 버전에서는 다른 문제점이 있었는데 pymavlink 설치가 되지 않기 때문에 3.10.11 버전으로 설치했다. 3.9 버전 최신 버전도 사용이 가능할 것이다.
오류가 나오지 않는 것을 알 수 있다.