“如何修复”;属性错误:';模块';对象没有属性';SOL_UDP'&引用;Python连接器Mule中出现错误

“如何修复”;属性错误:';模块';对象没有属性';SOL_UDP'&引用;Python连接器Mule中出现错误,mule,mule-esb,jython-2.7,mulesoft,ciscoconfparse,Mule,Mule Esb,Jython 2.7,Mulesoft,Ciscoconfparse,我试图执行一个基本脚本,以JSON格式返回Cisco配置文件,我在Python2.7.16和Python3.7.3上有一个成功的过程,但是当我试图在Python Connector for Mule ESB上执行相同的脚本时,我收到了这个线程标题中提到的错误 这是针对Mule特性的,该工具中的Python连接器脚本与Jython 2.7.1一起使用,并作为Mule的库加载 我希望输出为JSON文件,但实际输出为: Root Exception stack trace: Traceback (mo

我试图执行一个基本脚本,以JSON格式返回Cisco配置文件,我在Python2.7.16和Python3.7.3上有一个成功的过程,但是当我试图在Python Connector for 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'
根异常堆栈跟踪:
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
文件“C:\Python27\Lib\site packages\ciscoconfparse\\uuuu init\uuuu.py”,第1行,在
从ciscoconfparse进口*
文件“C:\Python27\Lib\site packages\ciscoconfparse\ciscoconfparse.py”,第17行,在
从型号\u cisco导入IOHostNameLine、IOSRouteLine、IOSIntfLine
文件“C:\Python27\Lib\site packages\ciscoconfparse\models\u cisco.py”,第8行,在
从ccp_util import_IPV6_REGEX_STR_COMPRESSED1,_IPV6_REGEX_STR_COMPRESSED2
文件“C:\Python27\Lib\site packages\ciscoconfparse\ccp\u util.py”,第16行,在
从dns.resolver导入解析程序
文件“C:\Python27\Lib\site packages\dns\resolver.py”,第1148行,在
_协议\u用于\u socktype={
AttributeError:“module”对象没有属性“SOL_UDP”

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

我唯一要做的就是在script resolver.py中注释这一行,这样Anypoint Studio上的脚本就可以顺利运行了


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

如果您在这里没有得到答案,请与dns.resolver项目联系。仅供参考,ciscoconfparse与此问题无关。感谢Alejandro,我终于找到了解决方案,我必须对请求该参数的库行进行注释,这使得Anypoint流工作正常毫无疑问,现在我在cloudhub中部署时遇到了问题,我不知道库应该在哪个路径加载可以从cloudhub读取的ciscoconfparse。您没有任何权限在cloudhub中安装库。您应该在应用程序中打包应用程序所需的所有内容,例如在src/main/resources目录或一个jar库。否则它将无法访问。谢谢Alejandro,我有一个例子,说明ciscoconfparse库在cloudhub上运行成功,谢谢:)