PyGobject(一)安装篇

本文详细介绍了如何在MacOSX系统上使用jhbuild安装GTK+及相关库,包括解决过程中遇到的各种问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PyGObject是一个Python模块,使开发人员可以访问基于GObject的库,如Python中的GTK+。它独家支持GTK+3版或更高版本。

由于博主使用的是macbook,所以安装方法适用于Mac OS X,其它系统大致相同,可以参考。

使用jhbuild安装

安装jhbuild

$ brew install wget
$ sh gtk-osx-build-setup.sh 
设置环境变量
$ export PATH=~/.local/bin:$PATH
$ jhbuild bootstrap  

可能报错:
1.jhbuild: The default location of the configuration file has changed. Please move /Users/xiaosanyu/.jhbuildrc to /Users/xiaosanyu/.config/jhbuildrc.
解决办法:

$ cp /Users/xiaosanyu/.jhbuildrc /Users/xiaosanyu/.config/jhbuildrc
$ rm /Users/xiaosanyu/.jhbuildrc

2.EnvironmentError: MacOSX10.10.sdk not found
解决办法:
下载MacOSX10.10.sdk,将解压后的文件夹放到如下路径下
Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

3.configure: error: XML::Parser perl module is required for intltool
解决办法:
下载XML-Parser
解压后编译安装

$ perl Makefile.PL
$ make
$ make install

安装gtk3核心库

$ jhbuild build meta-gtk-osx-gtk3

如果报错:
checking for XML::Simple… configure: error: XML::Simple perl module is required for icon-naming-utils
选4

$ cpan install XML::Simple

进入网站http://download.gnome.org/teams/releng/ 下载最新的xxx. modules
放到~/Source/jhbuild/modulesets中
然后修改~/.config/jhbuildrc,最后添加

use_local_modulesets = True

makeargs ='-j16'
moduleset = "gnome-apps-3.20"
autogenargs='--disable-static --disable-gtk-doc PYTHON=python3'
modules = [ 'meta-gnome-core', 'meta-gnome-apps-tested' ]
skip = ['telepathy-logger','gtk-doc','glade', 'telepathy-mission-control', 'gnome-photos', 'gitg', 'vala','gdlmm']
module_autogenargs['pygobject']= '--with-python=/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4'
module_autogenargs['glib-networking']='--without-ca-certificates'

安装pygobject和gtk+

$ jhbuild sanitycheck
$ jhbuild build pygobject
$ jhbuild build gtk+

如果报错
No package ‘cairo-gobject’ found

$ git clone git://anongit.freedesktop.org/git/cairo
$ cd cairo
$ ./autogen.sh --prefix=/Users/xiaosanyu/gtk/inst PYTHON=python3  --enable-xcb-shm  --enable-quartz
$ make -j16
$ make install

报错Requested ‘libpcre >= 8.13’ but version of libpcre is 8.02
下载libpcre

$ tar -vxzf /Users/xiaosanyu/Downloads/pcre-8.38.tar.gz
$ cd pcre-8.38
$ ./configure --enable-pcre16 --enable-pcre32 --enable-ucp --enable-unicode-properties --enable-rebuild-chartables --enable-newline-is-any
$ make
$ make install

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

报错No package ‘py3cairo’ found
安装py3cairo

$ git clone git://git.cairographics.org/git/pycairo
$ cd pycairo
$ python3 setup.py install
$ export PKG_CONFIG_PATH=/Library/Frameworks/Python.framework/Versions/3.4/lib/pkgconfig:$PKG_CONFIG_PATH

成功后,将~/gtk/inst/lib/python3.4/site-packages中的内容拷贝到python3的site-packages目录下

Windows下安装

见博主另一博文
http://blog.youkuaiyun.com/a87b01c14/article/details/52229393





代码下载地址:http://download.youkuaiyun.com/detail/a87b01c14/9594728

<think>我们正在为Python3.12安装PyGObject。根据引用[1],在基于Debian的系统上,安装命令是:sudoapt-getinstallpython3-gipython3-gi-cairogir1.2-gtk-3.0但这是针对系统自带的Python版本。现在我们需要为Python3.12安装,可能需要使用pip或者从源码构建。注意:PyGObject(即PyGObject)通常通过系统包管理器安装,因为它依赖于本地的GTK库。但是,如果系统包管理器没有提供Python3.12的包,我们可以使用pip安装。根据PyGObject的官方文档,从PyGObject3.42开始,它支持通过pip安装。因此,我们可以尝试使用pip安装。步骤:1.确保系统已安装GTK3开发文件和gobject-introspection库。这些是编译PyGObject所必需的。2.使用pip安装PyGObject。具体命令:首先,安装依赖(以Ubuntu/Debian为例):```bashsudoapt-getinstalllibgirepository1.0-devgcclibcairo2-devpkg-configpython3.12-dev```然后,使用pip安装:```bashpython3.12-mpipinstallpycairopython3.12-mpipinstallPyGObject```注意:PyGObject的pip包从3.42版本开始可用,因此确保安装的版本支持Python3.12。验证安装:```pythonimportgigi.require_version('Gtk','3.0')fromgi.repositoryimportGtk```如果没有错误,说明安装成功。如果遇到问题,可能需要检查系统是否安装了足够新版本的GTK3(至少3.22)以及其他依赖。另外,引用[2]中提到了使用独立环境安装TensorRT,同样,我们可以为Python3.12创建个虚拟环境,然后在其中安装PyGObject,但注意虚拟环境中安装PyGObject同样需要系统依赖。总结:在Python3.12中安装PyGObject,推荐使用pip安装,前提是满足系统依赖。</think>### 在 Python 3.12 中安装 PyGObject 的完整指南 PyGObjectPythonGTK+ 3 绑定库,安装步骤如下: #### 1. **安装系统依赖** 首先安装必要的开发库: ```bash sudo apt update sudo apt install libgirepository1.0-dev libcairo2-dev pkg-config \ libpango1.0-dev libgdk-pixbuf-2.0-dev \ gcc make gir1.2-gtk-3.0 ``` 这些依赖提供 GTK 的 C 库、头文件和编译工具[^1]。 #### 2. **安装 Python 环境工具** ```bash sudo apt install python3.12-dev python3.12-venv ``` #### 3. **创建虚拟环境** ```bash python3.12 -m venv pygi-env source pygi-env/bin/activate ``` #### 4. **通过 pip 安装** 在虚拟环境中执行: ```bash pip install wheel pip install PyGObject==3.46.0 pycairo ``` > **注意**:`PyGObject 3.42+` 开始支持 pip 安装,但需确保系统依赖完整[^1]。 #### 5. **验证安装** 创建测试文件 `test_gtk.py`: ```python import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk window = Gtk.Window(title="Hello PyGObject") window.connect("destroy", Gtk.main_quit) window.show_all() Gtk.main() ``` 运行验证: ```bash python3.12 test_gtk.py ``` ### 常见问题解决 - **`gi` 模块缺失**:检查是否在正确的虚拟环境中 - **Cairo 错误**:重新安装 `libcairo2-dev` - **GTK 版本问题**:确保安装 `gir1.2-gtk-3.0` - **Python 头文件缺失**:安装 `python3.12-dev` ### 替代安装方法 若 pip 安装失败,可尝试源码编译: ```bash git clone https://gitlab.gnome.org/GNOME/pygobject.git cd pygobject meson setup builddir meson compile -C builddir meson install -C builddir ``` > **提示**:建议使用 Python 3.12 的虚拟环境管理依赖,避免系统包冲突[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanxiaochengyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值