2016-04-22 69 views
1

晚上好,AttributeError的:「模塊」對象有沒有屬性「的SMBus」

我一直在努力的SMBus通信到我的硬盤驅動器,並已能夠通過所謂的readwriteeverything程序來讀取值。現在,我想創建自己的程序來讀取和寫入python中的導入smbus的寄存器。所以,我決定立足我的代碼從這個例子:

from smbus import SMBus 

bus = SMBus(1) # 0 = /dev/i2c-0 (port I2C0), 1 = /dev/i2c-1 (port I2C1) 

DEVICE_ADDRESS = 0x15  #7 bit address (will be left shifted to add the read write bit) 
DEVICE_REG_MODE1 = 0x00 
bus.write_data(DEVICE_ADDRESS, DEVICE_REG_MODE1) 
bus.read_data(DEVICE_ADDRESS) 

然而,當我嘗試運行的一行代碼:

from smbus import SMBus 

我得到:

ImportError: cannot import name SMBus 

我已經嘗試了python2,python3,安裝了很多軟件包,比如python3-smbus,甚至試圖構建軟件包並安裝它(儘管這是基於Raspberry Pi指南並且是與桌面相關的)。

我試過在Windows和Linux上都遇到同樣的問題。

如何讓這個命令正常工作?

+0

的細節,你試過通過PIP安裝呢? – Natecat

+0

是的,我嘗試按照這個指南:https://pypi.python.org/pypi/smbus-cffi,仍然沒有運氣 –

回答

0

您需要安裝SMBus模塊。嘗試:

pip install smbus-cffi --upgrade

看看這裏的包smbus-cffi 0.5.1 details

+0

這沒有奏效,這是我運行該命令時的輸出:'pip install smbus-cffi - 升級 要求已更新:/usr/local/lib/python2.7/dist-packages/smbus_cffi-0.5.1-py2.7-linux-x86_64.egg 中的smbus-cffi要求已更新:/usr/local/lib/python2.7/dist-packages/cffi-1.6.0-py2.7-linux-x86_64.egg中的cffi> = 1.1.0(來自smbus-cffi ) 要求已更新:/usr/local/lib/python2.7/dist-packages/pycparser-2.14-py2.7.egg中的pycparser(來自cffi> = 1.1.0-> smbus-cffi) 清理......「看起來一切都已經是最新的了。 –

+0

您是否熟悉virtualenv安裝?用'virtualenv mytest'創建一個虛擬環境。然後運行'source ./mytest/bin/activate'。此時,您處於乾淨的虛擬環境中,可以重新運行pip命令。手指交叉,可能會解決任何阻止您的主要python命令。 – zedman9991

+0

對不起,延遲的答覆,這似乎並沒有伎倆。我在pypy上嘗試過,並在虛擬環境中構建它之後直接通過終端。我正在運行Ubuntu 14.04.3的全新安裝,如果它在這一點上很重要。 –

相關問題