Что если одна из моих программ работает на python 2.4, но ИМПОРТИТ то, что требует python 2.5? - PullRequest
0 голосов
/ 11 ноября 2009

Тогда как мне импортировать это? Я запускаю все в Python 2.4, но один из моих скриптов импортирует xml.etree.ElementTree ..., который является только Python 2.5

Ответы [ 5 ]

6 голосов
/ 11 ноября 2009

Подумайте об обновлении до Python 2.5 (или, осмелюсь сказать, 2.6! -) в одно из этих десятилетий ... раз, они "изменится" ! В то же время, в частности, для ElementTree вы можете back-patch это, но ...

Come gather 'round people
Wherever you roam
And admit that the waters
Around you have grown
And accept it that soon
You'll be drenched to the bone.
If your time to you
Is worth savin'
Then you better start swimmin'
Or you'll sink like a stone
For the times they are a-changin'.

И если вы слышите это в отличная музыка помогает вам, не стесняйтесь ... но вам лучше начать плавать, иначе вы погрузитесь, как камень ...! -)

4 голосов
/ 11 ноября 2009

Тогда не получается.

Вы не можете импортировать библиотеку Python 2.5, пока вы работаете с Python 2.4. Это не сработает.

Почему вы не можете запустить Python 2.5+?

2 голосов
/ 11 ноября 2009

Вы должны иметь возможность установить ElementTree для Python 2.4. Он находится в Debian под именем пакета python2.4-elementtree..-celementtree)

Если вы не нашли пакет для своей ОС, вы можете установить его прямо из Source.

1 голос
/ 11 ноября 2009

Этот тип проблемы не так уж необычен, так как не все контролируют версию 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, прежде чем они стали частью стандартной библиотеки.

0 голосов
/ 09 июля 2012

Теперь вы можете отдельно установить elementtree в Python 2.4, просто зайдите сюда http://effbot.org/zone/element-index.htm и загрузите elementtree.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...