Как мне перейти на более новую версию Python и при этом использовать пакеты в старой версии?

На Ubuntu 10.04 я недавно установил Python 2.7.1 (ActivePython от ActiveState). Я использую meld для сравнения кода и не имел проблем с Python 2.6.5, но после перехода на 2.7.1 я получаю следующую ошибку при выполнении meld:

Meld требует pygtk 2.8.0 или выше

Глядя в диспетчер пакетов Synaptic, у меня установлен python-gtk2, который, как я считаю, сопоставляется с pygtk, но поскольку meld не может его найти, значит ли это, что он установлен для 2.6.5?

Если я запускаю следующее:

pip install pygtk

Я получил:

ImportError: нет модуля с именем dsextras

dsextras, кажется, является частью PyGObject, но если я попытаюсь сделать:

pip install pygobject

Я получаю сообщение об ошибке, которое указывает, что этот тип установки поддерживается только в Windows:

Не поддерживается, хорошо [y/N]? Ошибка: сборка distutils поддерживается только в Windows

Каков рекомендуемый способ перехода на более новую версию Python? Можно ли импортировать пакеты из 2.6.5 в 2.7.1 или я могу столкнуться с проблемами совместимости?

2 ответа

Решение

Это лучший способ установки Python 2.7 в Ubuntu 10.04. Какой лучший способ получить Python 2.5 и 2.7

Вы столкнетесь с проблемами совместимости с пакетами с бинарными модулями, включая pygtk.

Насколько я понимаю, дистрибутив ActiveState подходит для Windows, где нет собственного Python, но внешние бинарные пакеты выглядят менее привлекательными в Ubuntu. Другие ваши варианты - это обновление до ubuntu 10.10, которое я бы порекомендовал, компилирование вашего собственного python для вашего дома, сохранение совместимости с python2.6 или обратная портирование пакета python2.7 с 10.10.

Другие вопросы по тегам