【问题标题】:"xml.sax._exceptions.SAXReaderNotAvailable: No parsers found" when run in jenkins在詹金斯中运行时“xml.sax._exceptions.SAXReaderNotAvailable:未找到解析器”
【发布时间】:2015-08-16 15:10:26
【问题描述】:

所以我正在努力通过 Jenkins 和 Ansible 进行自动化的分段部署。其中一部分是使用来自 ansible 的名为 ec2.py 的脚本,以便动态检索要部署到的匹配服务器列表。

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

我对python不太了解,所以不知道如何进一步调试这个问题。

【问题讨论】:

    标签: python-2.7 jenkins sax


    【解决方案1】:

    所以问题是 Jenkins 覆盖了默认的 LD_LIBRARY_PATH 变量。在运行 python 之前通过unsetting 该变量,我能够使 python 应用程序工作!

    【讨论】:

    • 你是怎么做到的?
    • 查看在 bash 中使用 unset 命令的文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2020-09-29
    相关资源
    最近更新 更多