繁体   English   中英

OSError: [WinError 126] The specified module could not be found (using (pcap-ct) import pcap in python)

[英]OSError: [WinError 126] The specified module could not be found (using (pcap-ct) import pcap in python)

我正在做一个项目,我在 pycharm 中使用 python 使用libpcappcap-ct 我的代码运行良好,但我必须将我的项目从一台设备转移到另一台设备。 两款设备都运行相同版本的 windows 10 pro。 我在具有相同 pychram 版本的两台设备上使用 python 3.7.3,但在第一台设备上,我的项目运行良好,但在第二台设备上出现此错误。

我是这样导入的。

import pcap
import dpkt

错误就是这个。

    File "C:\Users\Desktop\Desktop\NetworkTraficAnalyser\ShowGraph.py", line 5, in <module>
        import pcap
    File "C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\pcap\__init__.py", line 6, in <module>
        from ._pcap     import * ; del _pcap      # noqa
  File "C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\pcap\_pcap.py", line 20, in <module>
    from libpcap import (DLT_NULL,   DLT_EN10MB, DLT_EN3MB,   DLT_AX25,
  File "C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\libpcap\__init__.py", line 7, in <module>
    from ._pcap      import * ; del _pcap      # noqa
  File "C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\libpcap\_pcap.py", line 73, in <module>
    from ._dll      import dll
  File "C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\libpcap\_dll.py", line 10, in <module>
    raise exc
  File "C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\libpcap\_dll.py", line 8, in <module>
    dll = DLL(DLL_PATH)
  File "C:\Users\Desktop\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

我已经检查了我的这个目录C:\Windows\System32我有这个文件wpcap.dll

我不知道,在我的两个设备上,这个文件是否相同,但它在两个设备上都存在。 我搜索了这个错误代码WinError 126并找到了不同的问题及其答案,但它们是因为有人正在导入 any.dll 文件或使用它,他们在路径中使用 \ 并且答案是他们应该使用 / 或 \ 代替,因为 \ 是也用于转义序列。 但我没有使用这样的东西。
如果 pcap 代码是这样使用的,我不知道。 谁能帮我解决问题和解决方案是什么?

问题不在于 pcap 本身,而在于它的依赖项 libpcap。 由于我无法访问您的计算机,因此我无法确定导致问题的原因。 但是,这里有一些我推荐的故障排除步骤:

  1. 编辑 C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\libpcap_dll.py 第 8 行,以便打印DLL_PATH变量。 这将告诉您 libpcap 在哪里寻找wpcap.dll
  2. wpcap.dll包含在 libpcap package 中。 尝试更新PATH环境变量,以便包含wpcap.dll目录。 它将是这样的set PATH=C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\libpcap\_platform\_windows\x64\wpcap;%PATH%有关详细信息,请参阅libpcap 的 github 页面
  3. 如果这些步骤失败,则会在 libpcap 的 github 页面上产生问题并寻求他们的帮助。

我在使用 ctypes 库时遇到了类似的错误。 它们几乎总是搜索错误的 dll 或没有正确的工作目录来查找所有 dll 的依赖项的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM