Этот тип проблемы не так уж необычен, так как не все контролируют версию Python, которую они используют. Несколько лет назад у меня возникла именно эта проблема, так как большая часть моей работы выполнялась на ПК с Windows, но в какой-то момент нам нужно было запустить ее на большом компьютере под управлением UNIX, который подвергался строгому контролю изменений, то есть я не мог установить Python 2.5. Я думаю, что даже сейчас на этой коробке может работать Python 2.4.
Оглядываясь назад на мое решение, оно не было особенно элегантным, но вот оно ...
while True:
try:
from xml.etree.cElementTree import *
break
except ImportError:
pass
try:
from xml.etree.ElementTree import *
break
except ImportError:
pass
try:
from cElementTree import *
break
except ImportError:
pass
from ElementTree import *
break
Это было частью модуля под названием xmlutils.py, который использовался остальной частью моего кода вместо непосредственного импорта xml.etree.ElementTree (или чего-либо еще).
Редактировать: Я должен указать, что cElementTree и ElementTree были именами для xml.etree.cElementTree и xml.etree.ElementTree, прежде чем они стали частью стандартной библиотеки.