windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。

安装 PYQT5 pypcap

环境:

windows10_x64

python3.6.3

pycharm2017.2.4

备注:

需要安装 Visual C++ Build Tools 2015 可以解决

error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools

1:建立虚拟环境

创建虚拟环境,基于python3.6.3,自动包含 pip  setuptools

2:安装pyqt5

pycharm直接在虚拟环境中安装pyqt5,自动安装sip 

3.安装dpkt

pycharm直接在虚拟环境中安装dpkt

4.安装pypcap

4.1下载pypcap源码https://github.com/pynetwork/pypcap/releases

4.2根据官网https://github.com/pynetwork/pypcap提示,windows下装个Npcap

WinPcap has compatibility issues with Windows 10, therefore it’s recommended to use Npcap (Nmap’s packet sniffing library for Windows, based on the WinPcap/Libpcap libraries, but with improved speed, portability, security, and efficiency). Please enable WinPcap API-compatible mode during the library installation.

4.3https://nmap.org/npcap/   npcap下载地址。

《windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。》

 

打开WinPcap API-compatible mode,这是pypcap要求的。

打开Support raw 802.1 traffic (and  monitor mode)for wireless adapters    像是无线网络支持。

  

4.3下载npcap的SDK  https://nmap.org/npcap/

4.4 解压npcap SDK  

放到一个盘的根目录并改文件夹名为wpdpack

我放在了D盘

(至少我这样,是可以正常安装成功的)

《windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。》

4.5解压pypcap

这个要解压到和SDK同一个盘符下,也放根目录吧。作者写的东西是基于linux的,没有盘符的概念,不会跨盘符去找文件。

《windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。》

4.6执行命令进行安装

介绍都说的很简单  python.exe  setup.py install

这个python是你的系统下的python,不是你虚拟环境中的python,这个路径又长。

教你个不用来回确认路径的方法,和我以前配置pycharm external tools 一样简单。

4.6.1,用pycharm 打开pypcap的文件夹。

4.6.2,打开setup.py

《windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。》

4.6.3,鼠标右键,运行它

4.6.4,编辑它的运行参数

《windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。》

4.6.5,运行参数如下:

 《windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。》

有用的其实就3条:

1 Script 脚本文件,我们的setup.py

2 Script parameters: 脚本参数 install 

3 Python interpreter:用的是哪个python虚拟环境  python

好了,安装命令的  python  setup.py install 三个都有了。

再运行一下这个setup.py就可以了。

 

它自动生成的命令是:
D:\PythonTest\Virtual_Sniffer\Scripts\python.exe D:/pypcap-1.2.0/setup.py install

自认高手的就自己照着去敲吧,我是懒的敲,就用这样的方法来执行了。

 

安装完成了。接下来打包。

pyinstall ****.py,图形配置在pyinstall文章。

问题是打包到了别的电脑,无法正常启动,提示加载DLL失败,提示出错的行是  import pcap,warn******.txt中并没有提示这个模块怎么样。

误打误撞,在别的电脑,首先安装NPCAP,并勾选winpcapAPI。然后再运行,就可以了。

 

 

安装

pcap方法接收5个参数:

  • name,监听的网卡名称。
  • snaplen,捕获的每个数据包的最大长度。
  • promisc,是否开启混杂模式
  • timeout_ms,接收数据包的超时时间
  • immediate,立即模式,如果启用则不会缓存数据包

 

我遇到了cookie抓取长度不够的问题。

烂写了一些东西,加上标记,自己再拼接。

有空试试snaplen。但是它默认是65535。还能改大么?

点赞