我測試了一個使用Python(2.7.8)腳本創建動態內容的基於Web的應用程序。獲取Python腳本在舊版本上運行時出錯
我解析了一些XML數據並對其執行了幾個操作。
其中一項操作需要搜索使用ElementTree
的findall(xpath)
函數的某些類型的數據。
現在我需要部署的地方是一個Linux版本的Python,它具有較舊版本的Python(2.6.6)。
由於較舊的ElementTree
沒有某些功能,我遇到了一些麻煩。
我跟着這個ElementTree SyntaxError: expected path separator ([)。我從2.7.8複製ElementTree
到新盒子並從那裏導入。
它進口的罰款,但現在我得到一個不同的錯誤,如下所示:
Traceback (most recent call last):
File "./filename_python.py", line 117, in <module>
for ch in child.findall(xpath):
File "/usr/lib64/python2.6/xml/etree/ElementPath.py", line 293, in findall
return list(iterfind(elem, path, namespaces))
File "/usr/lib64/python2.6/xml/etree/ElementPath.py", line 194, in select
if "".join(e.itertext()) == value:
AttributeError: itertext
我無法更新上那個盒子的Python版本,我不能添加任何模塊,因此任何新的東西,必須在本地進口。
任何幫助表示讚賞。
謝謝。
是否需要更改我的初始代碼才能使用,或者從lxml.etree導入ElementTree那麼簡單? 另外我應該提到,我正在使用cElementTree而不是ElementTree來實現更快的實現。 無論如何,我可以正確地backport庫而不是使用lxml嗎? –
lxml不兼容,所以是的,您需要更改您的代碼。如果這不是一個好的解決方案,請查看爲什麼使用錯誤的ElementPath.py(您沒有使用本地導入的2.7版本)。 –