模块未找到错误:没有名为“gi”的模块。

13

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

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'

我正在使用Python3,我的操作系统是Mac Sierra(10.12.1 (16B2555))。

我已经安装了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来自于我的虚拟环境:

(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

有什么想法可以解决我的问题吗?


2
我的第一个猜测是你正在使用虚拟环境的Python,但是gi安装在你的系统目录中。你能否停用虚拟环境,尝试启动Python并导入gi?如果可以工作,我们可以想出解决办法。 - Noufal Ibrahim
尝试重新创建环境,因为绑定是安装在系统Python上的,所以可能不会反映在您(旧)的环境中。执行 pip freeze> requirements.txt 以捕获已安装的内容,然后再次重新创建环境并尝试。 - Burhan Khalid
@NoufalIbrahim 显然这是因为:10:18 $ python Python 2.7.10 (默认, Jul 30 2016, 18:31:42) [GCC 4.2.1 兼容 Apple LLVM 8.0.0 (clang-800.0.34)] 在 darwin 上 键入 "help", "copyright", "credits" 或者 "license" 来获取更多信息。
import gi gi.require_version('Gst', '1.0')
- Gabrielle
@NoufalIbrahim 有什么想法如何继续吗? - Gabrielle
@NoufalIbrahim 谢谢 :) - Gabrielle
5个回答

8

根据@NoufalIbrahim所说,我的情况是在系统目录中安装了该包,但在虚拟环境中没有安装。

我通过执行以下命令解决了这个问题:

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

1
抱歉,我没有在我的原始评论后跟进。如果这确实是问题,您应该能够在虚拟环境中的Python中执行“pip install gi”并将其引入。您可以做的另一件事是使用“--system-site-packages”选项创建您的虚拟环境,以便它也会捕获您指定路径中的软件包。无需手动调整pythonpath。 - Noufal Ibrahim
1
@NoufalIbrahim 当我按照您建议使用pip时,我收到了ERROR: Could not find a version that satisfies the requirement gi (from versions: none) ERROR: No matching distribution found for gi。您确定“gi”是要安装的正确名称吗? - kakyo
1
你用的是Mac电脑吗? - Gabrielle

5

就我个人而言,我解决了运行问题。

pip install vext
pip install vext.gi

我找到的另一种解决方案

pip install homekit
pip install pygobject

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

2

您遇到了缺少gi库的错误。我在Mac OSX上通过运行以下命令解决了这个问题:

最初的回答:

brew install pygobject3 gtk+3

2
这并不是我的情况,如果你看一下我的问题,我展示了我已经运行了这个命令,我还展示了每当我试图再次运行该命令时,它都会说这个库已经安装好了... 问题在于缺少一个导出site-packages的设置.... - Gabrielle

1

-8

尝试运行此命令:

sudo apt install python3-gi

我使用的是Mac电脑,相应的命令(brew install python3-gi)无法运行... - Gabrielle
3
尽管这篇回答被点踩最多,但它解决了我的问题,而即使在这里得到最多点赞的回答也无法解决。我可能只是在编程比赛中经常看到的那些边缘情况之一,点一个赞。 - JumperBot_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接