Как мне перейти на более новую версию 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.