Python3.6导入gi模块报错求助:ImportError: cannot import name '_gi'
解决Python3.6导入gi模块出现
ImportError: cannot import name '_gi'的问题 嘿,这个问题我之前帮朋友排查过,本质是Python3.6环境里的GI(GObject Introspection)绑定文件要么缺失,要么版本不匹配。给你几个实测有效的解决办法:
1. 创建软链接匹配Python版本
系统里针对Python3.5的GI模块文件已经存在,但Python3.6找不到对应版本的文件。我们可以给它创建一个软链接:
# 进入gi模块目录 cd /usr/lib/python3/dist-packages/gi # 查看当前目录下的GI文件,找到对应3.5的版本 ls # 创建对应3.6的软链接(替换文件名里的架构部分为你系统的实际值,比如x86_64) sudo ln -s _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so sudo ln -s _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so
执行完之后再尝试导入gi,大概率能解决问题。
2. 重新安装适配Python3.6的pygobject
如果软链接的方法不生效,可能是模块本身的兼容性问题,直接针对Python3.6重新安装pygobject:
# 先卸载现有版本 sudo pip3 uninstall pygobject # 安装依赖包(debian/ubuntu系) sudo apt-get install python3.6-dev libgirepository1.0-dev # 针对Python3.6安装pygobject sudo python3.6 -m pip install pygobject
如果你用的是conda虚拟环境,换成以下命令:
conda activate your_env_name # 替换成你的虚拟环境名 conda install pygobject
3. 排查虚拟环境问题(如果使用的话)
如果你是在虚拟环境中运行Python3.6,很可能虚拟环境没有继承系统的GI模块。可以直接在虚拟环境内重新安装pygobject:
source your_venv/bin/activate # 激活虚拟环境 pip install pygobject
或者如果需要使用系统的GI模块,可以把系统的site-packages目录链接到虚拟环境中:
# 激活虚拟环境后执行 ln -s /usr/lib/python3/dist-packages/gi your_venv/lib/python3.6/site-packages/
如果以上方法都不行,可以尝试升级pygobject到最新兼容版本,或者检查系统是否有专门针对Python3.6的python3-gi包(比如debian系的仓库里是否有对应版本)。
内容的提问来源于stack exchange,提问作者jimmy
相关产品推荐
相关产品推荐

