Python 2.7 &引用;xml.sax.“U exceptions.SAXReaderNotAvailable:找不到解析器”;当我们在詹金斯

Python 2.7 &引用;xml.sax.“U exceptions.SAXReaderNotAvailable:找不到解析器”;当我们在詹金斯,python-2.7,jenkins,sax,Python 2.7,Jenkins,Sax,因此,我正致力于通过Jenkins和Ansible实现自动登台部署。其中一部分是使用从ansible调用的脚本来动态检索要部署到的匹配服务器的列表 SSH连接到Jenkins服务器并从Jenkins用户运行脚本,脚本按预期运行。但是,从jenkins内部运行脚本会导致以下错误: ERROR: Inventory script (ec2/ec2.py) had an execution error: Traceback (most recent call last): File "/opt/bit

因此,我正致力于通过Jenkins和Ansible实现自动登台部署。其中一部分是使用从ansible调用的脚本来动态检索要部署到的匹配服务器的列表

SSH连接到Jenkins服务器并从Jenkins用户运行脚本,脚本按预期运行。但是,从jenkins内部运行脚本会导致以下错误:

ERROR: Inventory script (ec2/ec2.py) had an execution error: Traceback (most recent call last):
File "/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/deploy/ec2/ec2.py", line 1262, in <module>
Ec2Inventory()
File "/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/deploy/ec2/ec2.py", line 159, in __init__
self.do_api_calls_update_cache()
File "/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/deploy/ec2/ec2.py", line 386, in do_api_calls_update_cache
self.get_instances_by_region(region)
File "/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/deploy/ec2/ec2.py", line 417, in get_instances_by_region
reservations.extend(conn.get_all_instances(filters = { filter_key : filter_values }))
File "/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/deploy/.local/lib/python2.7/site-packages/boto/ec2/connection.py", line 585, in get_all_instances
max_results=max_results)
File "/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/deploy/.local/lib/python2.7/site-packages/boto/ec2/connection.py", line 681, in get_all_reservations
[('item', Reservation)], verb='POST')
File "/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/deploy/.local/lib/python2.7/site-packages/boto/connection.py", line 1181, in get_list
xml.sax.parseString(body, h)
File "/usr/lib/python2.7/xml/sax/__init__.py", line 43, in parseString
parser = make_parser()
File "/usr/lib/python2.7/xml/sax/__init__.py", line 93, in make_parser
raise SAXReaderNotAvailable("No parsers found", None)
xml.sax._exceptions.SAXReaderNotAvailable: No parsers found
错误:清单脚本(ec2/ec2.py)有一个执行错误:回溯(最近一次调用):
文件“/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/Deploy/ec2/ec2.py”,第1262行,在
Ec2Inventory()
文件“/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/Deploy/ec2/ec2.py”,第159行,在__
self.do\u api\u调用\u更新\u缓存()
文件“/opt/bitnami/apps/jenkins/jenkins\u home/jobs/Deploy API/workspace/Deploy/ec2/ec2.py”,第386行,在do\u API\u calls\u update\u缓存中
self.get_实例按_区域(区域)
文件“/opt/bitnami/apps/jenkins/jenkins\u home/jobs/Deploy API/workspace/Deploy/ec2/ec2.py”,第417行,按区域获取实例
extend(conn.get_all_实例(filters={filter_key:filter_values}))
文件“/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/Deploy/.local/lib/python2.7/site packages/boto/ec2/connection.py”,第585行,在get_all_实例中
最大结果=最大结果)
文件“/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/Deploy/.local/lib/python2.7/site packages/boto/ec2/connection.py”,第681行,位于get_all_预订中
[('item',Reservation)],动词='POST')
文件“/opt/bitnami/apps/jenkins/jenkins_home/jobs/Deploy API/workspace/Deploy/.local/lib/python2.7/site packages/boto/connection.py”,get_列表第1181行
parseString(body,h)
文件“/usr/lib/python2.7/xml/sax/_init__.py”,第43行,格式为parseString
parser=make_parser()
make_解析器中的文件“/usr/lib/python2.7/xml/sax/_init__uuu.py”,第93行
raise SAXReaderNotAvailable(“未找到解析器”,无)
xml.sax.\u exceptions.SAXReaderNotAvailable:未找到任何解析器

我对python了解不多,所以我不确定如何进一步调试这个问题。

因此,问题在于Jenkins覆盖了默认的
LD\u LIBRARY\u PATH
变量。通过在运行python之前取消设置该变量,我能够使python应用程序正常工作

您是如何做到这一点的?请查看有关在bash中使用unset命令的文档