ModuleNotFoundError: No module named 'gi'

ModuleNotFoundError: No module named 'gi'

我正在尝试 运行 以下程序:

import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst

Bu 我得到:

Traceback (most recent call last):
  File "application.py", line 2, in <module>
    import gi
ModuleNotFoundError: No module named 'gi'

我在 Mac Sierra (10.12.1 (16B2555)) 使用 Python3.

我已经安装了 pygoject 和 gtk+3(可以在这里看到):

(cv) ✔ ~/Documents/test 
00:53 $ brew install pygobject3 --with-python3 gtk+3
Warning: pygobject3 3.24.1_1 is already installed
Warning: gtk+3 3.22.18 is already installed

我的 Python 来自我的 virtualenv:

(cv) ✘-1 ~/Documents/test 
00:53 $ which python
/Users/myuser/.virtualenvs/cv/bin/python

(cv) ✔ ~/Documents/test 
00:54 $ python --version
Python 3.6.1

如果我尝试卸载 gi 以重新安装它(正如我在 Stack 之前的一些回答中看到的那样),我得到:

(cv) ✘-1 ~/Documents/test 
00:55 $ pip uninstall gi
Cannot uninstall requirement gi, not installed

知道什么可以解决我的问题吗?

尝试运行这个命令:

sudo apt install python3-gi

在我的例子中,正如@NoufalIbrahim 所指出的,该软件包安装在系统目录中,但不在 virtualenv 中。

我已经通过执行解决了这个问题:

export PYTHONPATH=/usr/local/lib/python3.6/site-packages

由于缺少 gi 库,您收到此错误。我通过 运行 在 OSX (Mac) 上的命令解决了这个问题:

brew install pygobject3 gtk+3

我个人解决了运行

pip install vext
pip install vext.gi

我找到的另一个解决方案

pip install homekit
pip install pygobject

(Debian 用户:您可以将 homekit 替换为 sudo apt install libgirepository1.0-dev

我通过安装 PyGObject 安装说明中推荐的依赖项解决了这个问题:

https://pygobject.readthedocs.io/en/latest/getting_started.html#getting-started