【问题标题】: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)
【发布时间】:2021-04-04 13:48:29
【问题描述】:

我正在做一个项目,我在 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 并找到了不同的问题及其答案,但它们是因为有人正在导入任何 .dll 文件或使用它并且他们在路径中使用 \ 并且答案是他们应该使用/ 或 \ 代替,因为 \ 也用于转义序列。但我没有使用这样的东西。
如果 pcap 代码是这样使用的,我不知道。 谁能帮我解决问题和解决方案?

【问题讨论】:

    标签: python pcap libpcap winpcap


    【解决方案1】:

    问题不在于 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 包中。尝试更新PATH 环境变量,以便包含wpcap.dll 目录。会是这样的set PATH=C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site-packages\libpcap\_platform\_windows\x64\wpcap;%PATH% 详情请参阅libpcap's github page
    3. 如果这些步骤失败,请在 libpcap 的 github 页面上创建问题并寻求他们的帮助。

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

    【讨论】:

    • 非常感谢这是由于 python 路径的更改
    猜你喜欢
    • 2020-12-18
    • 2020-10-15
    • 2020-08-05
    • 2020-11-24
    • 1970-01-01
    • 2022-01-17
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多