How to fix "AttributeError: 'module' object has no attribute 'SOL_UDP'" error in Python Connector Mule

How to fix "AttributeError: 'module' object has no attribute 'SOL_UDP'" error in Python Connector Mule

我正在尝试对 return Cisco Config 文件执行基本脚本作为 JSON 格式,并且我在 Python2.7.16 和 [=18 上取得了成功=] 3.7.3,但是当我尝试通过 Python Mule ESB 连接器执行相同的脚本时,我收到了该线程标题中提到的错误。

这是一个 Mule 功能,此工具中的 Python 连接器脚本与 Jython 2.7.1 一起工作,并作为 Mule 的库加载。

我希望输出为 JSON 文件,但实际输出是:

Root Exception stack trace:
Traceback (most recent call last):
  File "<script>", line 2, in <module>
  File "C:\Python27\Lib\site-packages\ciscoconfparse\__init__.py", line 1, in <module>
    from ciscoconfparse import *
  File "C:\Python27\Lib\site-packages\ciscoconfparse\ciscoconfparse.py", line 17, in <module>
    from models_cisco import IOSHostnameLine, IOSRouteLine, IOSIntfLine
  File "C:\Python27\Lib\site-packages\ciscoconfparse\models_cisco.py", line 8, in <module>
    from ccp_util import _IPV6_REGEX_STR_COMPRESSED1, _IPV6_REGEX_STR_COMPRESSED2
  File "C:\Python27\Lib\site-packages\ciscoconfparse\ccp_util.py", line 16, in <module>
    from dns.resolver import Resolver
  File "C:\Python27\Lib\site-packages\dns\resolver.py", line 1148, in <module>
    _protocols_for_socktype = {
AttributeError: 'module' object has no attribute 'SOL_UDP'

问题似乎是您正在尝试执行依赖于不同 python 包的脚本。 Mule 支持使用 Java Jython 实现执行 python 脚本,但它可能不知道 pyhton 包依赖项。

我唯一要做的就是在脚本 resolver.py 中评论该行,这样 Anypoint Studio 上的脚本 运行 就可以顺利进行了。

感谢您的帮助,希望对其他人有所帮助。