1. 程式人生 > >pypcap安裝過程記錄

pypcap安裝過程記錄

最近看到可以通過python來抓包分析,比起以前通過wireshark+lua來分析要更順手一些,因此也考慮使用pypcap來做一些嘗試。但直接pip install pycap總是失敗,因此寫下此文件來記錄安裝過程

  1. pypcap的官網地址是:https://github.com/dugsong/pypcap,可以看到最後更新日期為2010年,因此果斷使用winpython 2.7環境來做試驗
  2. 下載pypcap原始碼,閱讀install檔案中"Building under Windows"部分
  3. 根據文件描述,安裝Pyrex模組。執行:python -m easy_install Pyrex
  4. 下載WinPcap原始碼,地址是:http://www.winpcap.org/devel.htm,下載
    Developer's Pack,並解壓。
  5. 檢查INSTALL文件中提到的distutils.cfg,發現不用修改。
  6. 文件中提到“Unpack the module sources to c:\pypcap, and developer's pack to c:\wpdpack.
    Edit the pypcap Makefile; uncomment the following line:

        CONFIG_ARGS = --with-pcap=..\\wpdpack”,可以看出使用了一個相對目錄來尋找WinPcap目錄。照辦!在我的電腦上修改後:
    PYTHON = D:\\WinPython-32bit-2.7.10.2\\python-2.7.10\\python.exe
    CONFIG_ARGS = --with-pcap=..\\wpdpack
  7. 文件中提到“and change the line:

        pyrexc pcap.pyx

    to read:

        $(PYTHON) c:\Python26\Scripts\pyrexc.py pcap.pyx” ,在我的電腦上修改後$(PYTHON) D:\WinPython-32bit-2.7.10.2\python-2.7.10\Scripts\pyrexc.py pcap.pyx
  8. 在pypcap目錄下執行"D:\WinPython-32bit-3.4.2.3\tools\mingw32\bin\mingw32-make",發現會報錯"error: Unable to find vcvarsall.bat"。經pycharm下除錯後發現是需要VS2008編譯環境,但我的電腦上只有VS2010環境。因此要在執行make之前,先"set VS90COMNTOOLS=%VS100COMNTOOLS%
    "
  9. 繼續make報錯,提示"..\wpdpack\include/pcap\pcap.h(41) : fatal error C1083: 無法開啟包括檔案:“pcap-stdinc.h”: No such file or directory"
  10. 修改setup.py中:for sd in ('include/pcap', 'include',  ''): 修改為 for sd in ('include', 'include/pcap', ''): 再重新make可以成功
  11. 再執行"D:\WinPython-32bit-3.4.2.3\tools\mingw32\bin\mingw32-make install"來安裝模組,根據文件描述檢查pcap.pyd是存在的。
  12. 此時啟動ipython,執行import pcap 可以成功。根據文件描述,執行:pcap.pcap().next() 可以看到輸出。
  13. 因此可以確認pypcap是安裝成功了。
  14. 繼續安裝dpkt,開始後面的研究吧。