PyGObject (aka PyGI)

Привязки Python к GLib/GObject/GIO/GTK+

PyGObject - это внешний модуль, дающий прозрачный и достаточный доступ к платформе программной разработки GNOME через использование GObject Introspection.

PyGObject даёт полный доступ к GObject Introspection и всех его функций (callbacks, поддержка GVariant, сабклассы и так далее).

Загрузка

Бинарные

Исходники

Документация

Вводная документация так же может быть сгенерирована с помощью g-ir-doc-tool в проекте gobject-introspection. Эта работа находится в процессе, и сейчас её может быть недостаточно для полноценного использования. Пожалуйста, посетите Страницу документации проекта GObject Introspection, чтобы узнать, как вы можете сгенерировать документацию напрямую из .gir-файлов, а так же узнаете, как вы можете помочь проекту. Примеры вывода Gtk+ так же доступны для просмотра.

Другая документация, написанная Christoph Reiter Python GObject Introspection API Reference, является кросс-ссылочной документацией совместно с The Python GTK+ 3 Tutorial, что позволяет шаг за шагом пройти туториал по написанию GTK-приложений на Python, Участвуйте!!. Tutorials, code samples and platform demos in Python GNOME так же доступно а текстовом виде для тех, кто желает начать изучение Программирования для GNOME на Python. И в заключении, вы, возможно, заинтересуетесь Гайдом по портированию.

Разработка

Получение кода

Используя jhbuild

Лучшим способом запуска PyGObject Introspection является запуск в окружении песочницы. И лучший способ для этого - jhbuild.

  • Следуйте Jhbuild build instructions до (и включая) "jhbuild bootstrap"

  • Используйте "gnome-apps-<gnome-version>" в качестве набора модулей. Где <gnome-version> - версия целевой среды окружения GNOME: подробнее RoadMap и текущие Modulesets.

  • Например, добавив ~/.jhbuildrc подготовит среду разработчика для GNOME 3.12 и поместит последние версии исходиков для pygobject и gobject-introspection:

moduleset = "gnome-apps-3.12"
branches["gobject-introspection"] = "master"
branches["pygobject"] = "master"
modules = ['gtk+', 'pygobject']

Для сборки с версией Python, отличной от системной:

module_autogenargs['pygobject'] = '--with-python=/my/custom/python'

Для начала сборки:

jhbuild build gtk+ pygobject

Для активации окружения jhbuild, запустите "jhbuild shell". Затем, будет использоватьс специальная консольная сессия песочницы PyGObject. Проверка:

$ python
import gi
print(gi.__file__)

Запуск тестов

PyGObject поставляется с множеством тестов. Для запуска используйте

$ make check

Тесты могут быть запущены в gdb или valgrind, используя "check.gdb" и "check.valgrind", соответственно.

Более того, могут быть запущены отдельные тесты:

$ make check TEST_NAMES="test_gi.TestConstant.test_constant_number test_gi.TestBoolean test_overrides"

Справедливо для "check.gdb" и "check.valgrind".

Примеры

Убедитесь, что вы просмотрели файлы в demos и examples папках pygobject.

Также посмотрите Philippe Normand's examples и Zach Goldberg - проект Zhaan.

Сборка на Win32 с cx_freeze

Убедитесь, что вы установили PyGObject с поддержкой GTK3 (посмотрите в разделе бинарных файлов загрузки), установите cx_freeze. В соответствии с setup.py я использую список для пакета простого приложения (с поддержкой glade).

Документация главного сопровождающего

Поддержка и обратная связь

Баги и патчи

Пожалуйста, направляйте ваши файлы отчётов об ошибках в Bugzilla для компонента "introspection". Спасибо!!

Патчи должны быть отмечены как протестированные, если их нет.

Контакты и обсуждение

Портирование PyGTK в PyGObject

Перевод на другие языки

PyGObject_ru (last edited 2015-06-05 18:22:02 by orb)