我正在尝试在Windows机器上安装pcapy。我已经安装了WinPcap 4.1.3
我将pcapy 0.10.8下载到C:\ pcapy-0.10.8
当我尝试安装时,会发生以下情况:
C:\pcapy-0.10.8>c:\Python27\python.exe setup.py install
running install
running build
running build_ext
building 'pcapy' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Bin\amd64\cl.exe /c /nolog o /Ox /MD /W3 /GS- /DNDEBUG -DWIN32=1 -Ic:\devel\oss\wpdpack\Include -Ic:\Python27\include -Ic:\Python27\PC /Tppcapdumper.cc /Fobuild\temp.win-amd64-2.7\Release \pcapdumper.obj
pcapdumper.cc
pcapdumper.cc(12) : fatal error C1083: Cannot open include file: 'pcap.h': No such file or directory
error: command 'cl.exe' failed with exit status 2
我不知道它在哪里寻找pcap.h.我可以确认pcapy-0.10.8目录中没有该名称的文件。
我错过了什么?我刚刚安装了WinPcap - 我需要重新启动吗?谢谢!
编辑添加...这是我的WinPcap安装日志的输出:
WinPcap 4.1.0.2980 Installation LOG
-----------------------------------------------------
Debug Information
Operating system detected on registry: 7 - AMD64
True operating system (kernel.dll): 7 - AMD64
npptools.dll present on the system: false
netnm.inf present on the system: false
nmnt.sys present on the system: false
End of log
-----------------------------------------------------
false
是否意味着WinPcap没有正确安装?我希望在我的WinPcap目录下找到pcap.h,但它不存在。我确实知道如果需要我可以在setup.py中添加其他包含文件目录,但我无法在我的机器上的任何地方找到pcap.h。我应该从哪里得到它?
答案 0 :(得分:5)
C:\pcapy-0.10.8>c:\Python27\python.exe setup.py install
从the CoreLabs site for pcapy上的文字,这表明您下载的是源而不是Win32二进制文件。除非您真的需要从源代码构建,否则您可能会发现 LOT 更容易安装二进制文件。
那些谬误是否意味着WinPcap没有正确安装?
没有
我希望找到pcap.h
然后, IF 您 需要 从源代码构建,您需要安装WinPcap {{3 }}。 WinPcap只是“运行时间”,足以支持已经构建的Wireshark等程序,但对于使用WinPcap并且需要在您的计算机上编译的软件来说还不够 - 显然,无论你下载什么样的pcapy都需要建立。
(这类似于libpcap在许多Linux发行版上打包的方式 - “libpcap”包只安装运行时,你需要安装一个“libpcap-dev”软件包,或类似的东西,以获得头文件。)
但如果Windows二进制文件适合您,请不要使用WinPcap开发人员包。
答案 1 :(得分:3)
以Josh P的答案为基础(我过去大部分时间都在那里):
c:\users\foo\Downloads\WpdPack_4_1_2
)--global-option
构建传递标头和链接器位置为链接器指定库文件夹时,在Windows 7上,我需要指定lib的x64版本,而不是lib的(默认)x32版本:
pip install pcapy --global-option="build_ext"
--global-option="-Ic:\users\foo\Downloads\WpdPack_4_1_2\WpdPack\include"
--global-option="-Lc:\users\foo\Downloads\WpdPack_4_1_2\WpdPack\lib\x64"
使用文件的...\lib
(x32)版本时,我收到以下链接错误:
Creating library build\temp.win-amd64-2.7\Release\pcapy.lib and object build\temp.win-amd64-2.7\Release\pcapy.exp
pcapdumper.obj : error LNK2019: unresolved external symbol pcap_dump_close
referenced in function "void __cdecl pcap_dealloc(struct pcapdumper *)"
(?pcap_dealloc@@YAXPEAUpcapdumper@@@Z)
答案 2 :(得分:2)
正如Guy Harris解释的那样,下载安装二进制文件通常更容易。如果您从源代码构建:
使用pip' --global-option
。 setup.py是不同的,但我认为pip比setup.py更受欢迎。
这是一个示例行(替换为您系统的正确路径;我只是在Downloads文件夹中引用它们):
pip install ./pcapy-src-dir --global-option=build_ext --global-option="-LC:\path\to\WpdPack_4_1_2\WpdPack\Lib" --global-option="-IC:\path\to\WpdPack_4_1_2\WpdPack\Include
另见this answer。
答案 3 :(得分:0)
在 pcapy-0.11.1 中,setup.py
比他们在维基页面上描述的内容更智能,更智能:https://github.com/CoreSecurity/pcapy/wiki/Compiling-Pcapy-on-Windows-Guide
调查表明,设置环境变量WPDPACK_BASE
已经足够了,所以在Windows'它可能看起来像:
set WPDPACK_BASE=C:\Software\WpdPack
它甚至可以检测您是否需要这些库的32位或64位版本。
之前的答案并没有帮助我解决问题,但帮助我挖掘。所以他们可能有点过时了。