Обновить неустановленное программное обеспечение с помощью pygtk
Я пытаюсь вернуть старый программный продукт к работе. это автономный клиент базы данных, его графический интерфейс описывается python-glade
и использовал / использовал модуль Python gtk
,
когда я последний раз использовал его, это было два или три года назад, и в то время он мог быть установлен прямо из коробки. Я не знаю, с какими версиями разных библиотек он работал.
Первоначально я хотел изолировать его зависимости в виртуальной среде, но две из них pygtk
а также gobject
которые трудно установить с помощью pip
на Linux, и я боюсь, что я закончил с довольно грязным беспорядком с одинаково названными глобально установленными библиотеками.
оригинальный автор программного обеспечения говорит, что он не следил за разработками GTK в последнее время слишком близко, и он намекает на замену import gtk
с from gi.repository import Gtk; gtk = Gtk
, но если я это сделаю, я получу ошибку сегментации в модуле библиотеки:
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40:
Warning: g_type_get_qdata: assertion 'node != NULL' failed
from gtk import _gtk
Segmentation fault (core dumped)
и вообще я бы не знал где взять gdk
, который также используется.
одна серьезная проблема заключается в том, что у меня нет четкого представления о том, в чем разница между модулями: pygtk
, gtk
, gi.repository.Gtk
,
1 ответ
Как сказал jku, GTK2 все еще жив и здоров. Вы сможете заставить исходное приложение работать, если вы установите соответствующие зависимости. Беглый взгляд на список зависимостей создает у меня впечатление, что вы должны установить следующие пакеты (в системе на основе Debian):
- python2.7 (или любой Python2.x)
- питон-SQLAlchemy
- питон-gtk2
- Python-GObject-2
- питон-LXML
- питон-pysqlite2
- питон-glade2
если вы столкнетесь с
ImportError: No module named xxxx
Обычно вы решаете эту проблему, устанавливая соответствующий пакет python-xxxx.