OSX系统更新后导入pygobject3的gi模块遇ImportError问题求助
解决OSX更新后Python2导入gi模块报错ImportError: cannot import name _gi的问题
我之前也碰到过完全一样的情况!更新OS X系统后,原本用Homebrew搭建的GTK3 + Python2环境突然炸了,一import gi就报找不到_gi模块的错误。折腾了好一会儿才搞定,给你分享下可行的解决方案:
问题原因
系统更新后,Homebrew的Python2环境和GTK3的gobject-introspection绑定出现了版本不兼容或者链接损坏的情况,导致Python找不到底层的_gi核心模块。
修复步骤
1. 彻底卸载并重新安装相关依赖
先把现有的Python2和GTK绑定都卸掉,避免残留的冲突:
# 卸载pygobject3(GTK3的Python绑定) brew uninstall pygobject3 # 卸载Homebrew的Python2 brew uninstall python@2 # 清理Homebrew缓存,避免旧包干扰 brew cleanup
然后重新安装,注意要明确指定给Python2安装pygobject3:
# 重新安装Python2 brew install python@2 # 安装pygobject3并指定依赖Python2 brew install pygobject3 --with-python@2
2. 确认Python环境路径
确保你运行的是Homebrew安装的Python2,而不是系统自带的(系统自带的Python2没有GTK绑定):
# 检查Python2路径,应该输出你指定的Homebrew路径 which python2
如果输出不是/usr/local/Cellar/python@2/2.7.14_3/bin/python2,把这个路径加到你的shell配置文件里(比如~/.bash_profile或者~/.zshrc):
echo 'export PATH="/usr/local/Cellar/python@2/2.7.14_3/bin:$PATH"' >> ~/.bash_profile # 生效配置 source ~/.bash_profile
3. 验证修复
运行你的测试代码试试:
/usr/local/Cellar/python@2/2.7.14_3/bin/python2 import_gi.py
这时候应该能正常输出gi模块的字典内容,不会再报_gi找不到的错误了。
额外注意事项
- 尽量不要混用系统自带的Python和Homebrew的Python,两者的依赖环境完全独立,很容易出现冲突
- 如果之后再更新系统,可能需要重复这个步骤,因为系统更新有时候会重置Homebrew的链接
内容的提问来源于stack exchange,提问作者krumpelstiltskin
相关产品推荐
相关产品推荐

