如何解决ImportError: No module named 'dbus'错误?

22

我在我的Ubuntu上安装了anaconda4,并且我在Python上有这些模块:

dbus-python (1.2.4)

gi (1.2)

pydbus (0.2)

QtAwesome (0.3.2)
qtconsole (4.2.0)
QtPy (1.0)

sip (4.18)

我尝试安装dbus-python (1.2.4)pydbus (0.2),但是它们都无法正常工作!

在测试Python 3.5.1中的简单程序后,出现了一个错误:

import dbus
system_bus = dbus.SystemBus()

ImportError: No module named 'dbus'

当我在Python 2.7.11和3.5.1中使用pydbus时:

from pydbus import SystemBus

bus = SystemBus()
systemd = bus.get(".systemd1")

for unit in systemd.ListUnits():
    print(unit)

我遇到了这个错误:

ImportError: No module named repository

唯一可行的是使用 这个例子 和我没有任何教程的PyQT4

问题在哪里?是我的安装还是其他什么原因?


我在我的Python上有这些模块:这是在2.7还是3.5下?您比较了两个目录树吗?很可能您没有在两个版本中都安装完全。我建议在安装时检查环境变量PATHPYTHONPATH(如果存在)。 - cdarke
8个回答

40

尝试使用Python 3.6的32位版本

pip install dbus-python

2
我正在使用 conda,并且 conda install -c conda-forge dbus-python 对我有效。其他答案在 conda 环境中无法工作。 - Burak Kaymakci

31

我不知道如何在Anaconda中安装DBus,但你可以使用apt-get在Ubuntu中安装它。

sudo apt-get install python-dbus

我之前尝试了使用pip,但对我来说没有起作用。


18
要安装 Python 3 的 dbus 模块,请执行以下命令:sudo apt install python3-dbus - Smarty77
这是针对基于Debian的操作系统(在您的情况下是Ubuntu) 就像Chetan回答的那样...但是@amit的命令给了我Package python-dbus is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source。 - Cadoiz

5

我在安装python3中的notify2时遇到了同样的问题。我使用的是MacOS 10.12,问题已得到解决。

brew install dbus

这是针对MacOSX(和其他操作系统)或基本上所有已安装Homebrew的操作系统。 - Cadoiz

3
我不确定您是如何安装模块的,但此错误很可能是由于未安装或未正确安装模块导致的。我建议按照以下方式安装模块。
使用以下命令进行安装:pip install dbus 或者,由于您拥有Anaconda,也可以使用以下命令:conda install dbus 如果您能够访问并下载源代码(例如在GitHub上),则可以尝试以下两种方法。进入源代码目录,然后在终端运行以下命令:
pip install setup.py

或者
python setup.py build
python setup.py install

如果想要从源分发安装软件包, 可以查看页面了解更多信息。


3
我尝试过运行 pip install dbus 命令,但一直都会遇到错误:Could not find a version that satisfies the requirement dbus (from versions: )。无法找到符合 dbus 要求的版本,也没有找到匹配的发行版本。 - B nM
你用什么操作系统进行DBus编程?你知道吗,我现在快疯了,为什么这么简单的东西让我如此痛苦。 - B nM
我实际上从未使用过 dbus。如果您可以下载源代码,您可以使用我在答案中添加的源安装方法。 - Neill Herbst
pip 中没有名为 dbus 的包。有一个叫做 dbus-python 的包,但在 anaconda3 上安装时出现了“非标准前缀”的错误提示。 - cnvzmxcvmcx

2
当运行一个名为zeitgeist-explorer的应用程序时,我遇到了同样的问题,但通过安装python2-dbus解决了这个问题,因为系统正在使用3.5版本,而应用程序需要2.x版本。如果你遇到了像这样的错误,请查看这篇文章:修复导入错误:没有名为dbus的模块

1

pydbus需要python-gi(或在Python 3的情况下需要python3-gi)。而pydbus 0.2已经非常过时,当前版本是0.5.1。


1

只需做

sudo apt-get install python-dbus

在基于Debian的操作系统上(例如Ubuntu)或

brew install dbus

在MacOSX上


复制到这个(brew这个(apt-get - Cadoiz

0

尝试重新安装dbus-python。同时在另一个虚拟环境中尝试。


这个建议似乎已经在之前的所有答案中都提到过了。 - Brian61354270
@Brian 这是我对可能是同样解决方案的重新阐述,基于我的经验,这将给后来的访问者更多的信心。祝你生活愉快。 - Garry S

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