OSError:[WinError 126]找不到指定的模块(使用python中的(pcapct)导入pcap)

2024-06-16 09:42:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,在这个项目中,我正在使用libpcappcap-ct在pycharm中使用python。 我的代码运行良好,但我必须将我的项目从一个设备转移到另一个设备。两台设备都使用相同版本运行windows 10 pro。我在两台设备上使用的Python3.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代码是这样使用的,我不知道。 有人能帮我解决什么问题吗


Tags: inpyimportvenvliblinesitepcap
1条回答
网友
1楼 · 发布于 2024-06-16 09:42:26

问题不在于pcap本身,而在于其依赖项libpcap。由于我无法访问您的计算机,我无法确定是什么导致了问题。但是,以下是我建议的一些故障排除步骤:

  1. 编辑C:\Users\Desktop\Desktop\NetworkTraficAnalyser\venv\lib\site packages\libpcap\u 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的依赖项而导致的

相关问题 更多 >