Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在windows 7上安装pcapy时出现问题-无法打开包含文件:';pcap.h';_Python_Pcap_Winpcap - Fatal编程技术网

Python 在windows 7上安装pcapy时出现问题-无法打开包含文件:';pcap.h';

Python 在windows 7上安装pcapy时出现问题-无法打开包含文件:';pcap.h';,python,pcap,winpcap,Python,Pcap,Winpcap,我正在尝试在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 (x

我正在尝试在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
s是否意味着WinPcap没有正确安装?我希望在我的WinPcap目录下找到pcap.h,但它不在那里。如果需要的话,我确实看到了可以在setup.py中添加其他include文件目录的位置,但是在我的机器上的任何地方都找不到pcap.h。我应该从哪里得到这些

从上一节的文本来看,这表明您下载的是源代码,而不是Win32二进制文件。除非您真的需要从源代码构建,否则您可能会发现只需安装二进制文件就很容易了

错误是否意味着WinPcap没有正确安装

没有

我希望能找到pcap.h

然后,如果需要从源代码构建,则需要安装WinPcap。WinPcap只是“运行时”,对于已经构建的Wireshark等程序来说已经足够了,但对于使用WinPcap并需要在您的机器上编译的软件来说还不够——显然,您下载的任何类型的pcapy都需要构建

(这类似于在许多Linux发行版上打包libpcap的方式——“libpcap”软件包只安装运行时,您需要安装“libpcap dev”软件包或类似的软件包来获取头文件。)


但是,如果Windows二进制软件适合您,就不用担心WinPcap开发包。

正如盖伊·哈里斯(Guy Harris)所解释的,下载和安装二进制软件通常更容易。如果您确实从源代码生成:

  • 下载
  • 使用pip的
    --全局选项
    。setup.py是不同的,但无论如何,我认为pip比setup.py更受欢迎

    下面是一个示例行(替换为系统的正确路径;我只是在下载文件夹中引用了它们):


  • 另请参见。

    以Josh p的答案为基础(我刚才大部分时间都是这么做的):

  • 下载WinPcap开发者包
  • 解压缩zip文件(例如
    c:\users\foo\Downloads\WpdPack\u 4\u 1\u 2
  • 使用
    --global选项
    构建以传入标头和链接器位置
  • 在Windows 7上为链接器指定库文件夹时,我需要指定x64版本的库,而不是(默认)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)
    

    pcapy-0.11.1中,
    setup.py
    更智能,甚至比他们在wiki页面上描述的更智能:

    调查表明,这足以设置环境变量WPDPACK_BASE,因此在Windows的情况下,它可能看起来像:

    set WPDPACK_BASE=C:\Software\WpdPack
    
    它甚至能够检测您是否需要这些库的32位或64位版本


    以前的答案并没有帮我解决这个问题,而是帮我挖掘。因此,它们可能有点过时。

    这对于开发人员的包来说是有意义的。很明显,我错过了一些我不知道的东西。他们似乎没有一个我可以下载的.egg文件,而.exe看起来想重新安装Python(2.5),我不想这样。此外,Chrome似乎认为.exe是恶意软件(!),因此我想我会尝试抓取开发人员的软件包并构建pcapy。下载开发人员的软件包并在setup.py中向其Include和Lib目录添加指针让我走得更远,但构建仍然失败,有许多未解析的外部符号:-/
           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)
    
    set WPDPACK_BASE=C:\Software\WpdPack