python dbus问题

时间:2010-07-20 18:35:14

标签: python dbus

我遇到了dbus和python的问题。从命令行运行python,告诉它import dbus然后systembus = dbus.SystemBus()导致没有错误,也没有运行由朋友编写的程序,该程序也使用完全相同的代码。但是,在运行我正在尝试编写的程序时,我收到此错误:

Traceback (most recent call last):
  File "dbtest.py", line 26, in <module>
    a = getDevs()
  File "dbtest.py", line 7, in getDevs
    bus = dbus.SystemBus()
AttributeError: 'module' object has no attribute 'SystemBus'

关于我做错了什么的任何想法?我不认为我完全理解返回的错误。我到目前为止的代码是:

#!/usr/bin/env python
import dbus

def getDevs():
        bus = dbus.SystemBus()

if __name__ == "__main__":
        a = getDevs()

1 个答案:

答案 0 :(得分:8)

显而易见的问题是,当您导入dbus时,它没有获得所有方法。

在您的计划和您的朋友中,执行print dbus.__file__。这将显示它正在使用的.pyc。如果它们不同,则不会导入正确的dbus模块。

我猜你实际上是在本地目录中导入了一个名为dbus.py的随机文件。或者,如果您的脚本名称是“dbus.py”,那么您只是导入自己,幸运的是python不会递归导入。在这种情况下,最简单的解决方案是将有问题的文件重命名为其他文件。