Contents
PyGObject (aka PyGI)
Привязки Python к GLib/GObject/GIO/GTK+
PyGObject - это внешний модуль, дающий прозрачный и достаточный доступ к платформе программной разработки GNOME через использование GObject Introspection.
PyGObject даёт полный доступ к GObject Introspection и всех его функций (callbacks, поддержка GVariant, сабклассы и так далее).
Загрузка
Бинарные
Fedora: pygobject3
Debian: python-gi и python3-gi
Ubuntu: python-gi и python3-gi
Исходники
Документация
Вводная документация так же может быть сгенерирована с помощью 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. И в заключении, вы, возможно, заинтересуетесь Гайдом по портированию.
Разработка
Получение кода
git clone git://git.gnome.org/pygobject (Просмотр)
Используя 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". Спасибо!!
Патчи должны быть отмечены как протестированные, если их нет.
Контакты и обсуждение
Список рассылки: python-hackers-list
Портирование PyGTK в PyGObject