我有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'
Run Code Online (Sandbox Code Playgroud)
关于我做错了什么的任何想法?我不认为我完全理解返回的错误.我到目前为止的代码是:
#!/usr/bin/env python
import dbus
def getDevs():
bus = dbus.SystemBus()
if __name__ == "__main__":
a = getDevs()
Run Code Online (Sandbox Code Playgroud)
显而易见的问题是,当您导入时dbus,它没有获得所有方法.
在您的计划和您的朋友中,都可以print dbus.__file__.这将显示它正在使用的.pyc.如果它们不同,则不会导入正确的dbus模块.
我猜你实际上是在导入一些dbus.py在本地目录中调用的随机文件.或者,如果您的脚本名称是"dbus.py",那么您只是导入自己,幸运的是python不会递归导入.在这种情况下,最简单的解决方案是将违规文件重命名为其他内容.
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |