gi.repository Windows
Я разрабатываю приложение, которое должно быть на 100% совместимо с Windows и Linux. В Linux у меня нет проблем, но в Windows я получил это сообщение: из импорта gi.repository Gtk ImportError: Нет модуля с именем gi
Я установил pygobject, pygtkallinone, gtk.. что мне не хватает?
2 ответа
Большинство ответов Havok верны, за исключением того, что в последнее время документация значительно улучшилась с помощью учебника:
Включая PDF-версию для чтения в автономном режиме:
И полное справочное руководство по API, не только Gtk, но и многих других библиотек, которые вы можете использовать с самоанализом:
в windows поддержка отличная, много усилий было приложено для создания всех исполняемых файлов и библиотек windows, последний выпуск pygi-aio - 3.10.6:
Я также поместил в вики Gnome инструкции о том, как собрать win32 с помощью самоанализа pygobject, это не так сложно, я также загрузил setup.py, который действительно работает:
Ответ таков: не используйте PyGTK
gi.repository
Модуль называется PyGObject и предназначен для Gtk+3 и пока недоступен для Windows (были эксперименты, но не готов AFAIK). https://live.gnome.org/PyGObject
gtk
Модуль называется PyGtk и предназначен для Gtk+2 и является очень зрелым на платформах Windows (в частности, 2.24). http://www.pygtk.org/
Какая разница?
- PyGObject имеет ограниченную поддержку Windows. PyGtk прекрасно поддерживает эту ОС.
- PyGObject - это то, что называется динамическим связыванием, а PyGtk является статическим.
- PyGObject - это новое и будущее, а PyGtk - это прошлое, зрелое и когда-нибудь станет устаревшим.
- Документация и примеры PyGObject очень ограничены, а PyGtk очень полон: http://developer.gnome.org/pygtk/stable/
- Они не совместимы, вы не можете использовать оба, и вам нужно выбрать один.
- PyGObject находится в активной разработке, никаких новых возможностей для PyGtk не будет.
- Если вы используете Glade, последняя версия будет для PyGObject (например, 3.12.1). Если вы хотите использовать Glade для PyGtk, установите версию 3.8.0.
Если вы решите пойти PyGtk, есть отличная поддержка для замораживания приложения. Вы можете проверить мою документацию и файлы поддержки для моего приложения здесь: http://sourceforge.net/p/nestededitor/code/247/tree/trunk/dist/windows/
Надеюсь, поможет.
РЕДАКТИРОВАТЬ:
Многое изменилось за два года. Пожалуйста, смотрите gianmt ответ.