Gi.repository Windows

Я разрабатываю приложение, которое должно быть на 100% совместимо с окнами и linux. На linux у меня нет проблем, но в окнах я придумал это сообщение: из gi.repository import Gtk ImportError: нет модуля с именем gi

Я установил pygobject, pygtkallinone, gtk.. что мне не хватает?

Ответ 1

Большинство ответов Havok верны, за исключением того, что документация была улучшена в последнее время с помощью учебника:

Включая версию PDF для автономного чтения:

И полное справочное руководство по API, а не только Gtk, но и многие другие библиотеки, которые вы можете использовать с интроспекцией:

В Windows поддержка велика, много усилий было создано для создания всех исполняемых файлов и библиотек Windows, последняя версия pygi-aio - 3.10.6:

Я также написал инструкции по вики Gnome о том, как построить на win32 с интроспекцией pygobject, это не так сложно, я также загрузил setup.py, который действительно работает:

Итак, ответ: не ходите с PyGTK

Ответ 2

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/

Надеюсь, что это поможет.

EDIT:

За два года многое изменилось. Пожалуйста, см. Ответ gianmt.