ModuleNotFoundError:没有名为“gi”的模块
Posted
技术标签:
【中文标题】ModuleNotFoundError:没有名为“gi”的模块【英文标题】:ModuleNotFoundError: No module named 'gi' 【发布时间】:2018-01-21 21:28:11 【问题描述】:我正在尝试运行以下程序:
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst
我得到了:
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 来自我的 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
知道什么可以解决我的问题吗?
【问题讨论】:
我的第一个猜测是您使用的是 virtualenv python,但 gi 安装在您的系统目录中。您可以停用您的 virtualenv,尝试启动 python 并导入 gi 吗?如果可行,我们可以想办法。 尝试重新创建环境,因为绑定是针对系统 Python 安装的 - 因此它们可能不会反映在您的(旧)环境中。执行pip freeze > requirements.txt
以捕获您已经安装的内容,然后重新创建环境,然后尝试。
@NoufalIbrahim 显然是这种情况,因为:10:18 $ python Python 2.7.10(默认,2016 年 7 月 30 日,18:31:42)[GCC 4.2.1 兼容 Apple LLVM 8.0.0 (clang-800.0.34)] on darwin 键入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 >>> 导入 gi >>> gi.require_version('Gst', '1.0')
@NoufalIbrahim 任何想法如何进行?
@NoufalIbrahim 谢谢 :)
【参考方案1】:
在我的情况下,正如@NoufalIbrahim 所指出的那样,该软件包安装在系统目录中,但没有安装在 virtualenv 中。
我已经通过执行解决了这个问题:
export PYTHONPATH=/usr/local/lib/python3.6/site-packages
【讨论】:
我很抱歉。在我最初的评论之后,我无法跟进。如果这确实是问题所在,您应该能够在您的 virtualenv python 中执行pip install gi
并且它应该将其引入。您可以做的另一件事是使用 --system-site-packages
选项创建您的 virtualenv 以便它可以接受包在您指定的路径中。无需手动修改 pythonpath。
@NoufalIbrahim 当我使用 pip 执行您的建议时,我得到了 ERROR: Could not find a version that satisfies the requirement gi (from versions: none) ERROR: No matching distribution found for gi
。你确定gi
是要安装的东西的正确名称吗?
你在使用 mac 吗?【参考方案2】:
由于缺少 gi 库,您会收到此错误。我通过在 OSX (Mac) 上运行以下命令解决了这个问题:
brew install pygobject3 gtk+3
【讨论】:
对我来说不是这样,如果你看我的问题,我表明我已经运行了这个命令,我还表明,每当我尝试再次运行该命令时,它会说这个库已经安装...问题是缺少导出站点包....【参考方案3】:我个人解决了跑步
pip install vext
pip install vext.gi
我找到的另一个解决方案
pip install homekit
pip install pygobject
(Debian 用户:您可以将 homekit 替换为 sudo apt install libgirepository1.0-dev
)
【讨论】:
【参考方案4】:我通过安装 PyGObject 安装说明中推荐的依赖解决了这个问题:
https://pygobject.readthedocs.io/en/latest/getting_started.html#getting-started
【讨论】:
【参考方案5】:尝试运行此命令:
sudo apt install python3-gi
【讨论】:
我在 Mac 上,等效命令 (brew install python3-gi) 不起作用...以上是关于ModuleNotFoundError:没有名为“gi”的模块的主要内容,如果未能解决你的问题,请参考以下文章
ModuleNotFoundError:没有名为“dataviz”的模块
ModuleNotFoundError:没有名为“numpy”的模块
错误:ModuleNotFoundError:没有名为“图像”的模块
ModuleNotFoundError:没有名为“knox”的模块