Good Afternoon,
I’m running the latest Google AIY image aiyprojects-2018-04-13
.
Both python2 and python3 are installed.
The latest Pimoroni dashboard is also installed along with the latest libraries.
However when I run: python3 test-all.py
I get:
Traceback (most recent call last):
File “test-all.py”, line 7, in
import scrollphat
ImportError: No module named ‘scrollphat’
Running python test-all.py
gets me:
Traceback (most recent call last):
File “test-all.py”, line 7, in
import scrollphat
File “/usr/lib/python2.7/dist-packages/scrollphat/init.py”, line 20, in
controller = IS31FL3730(smbus, font)
File “/usr/lib/python2.7/dist-packages/scrollphat/IS31FL3730.py”, line 17, in init
self.bus = self.bus.SMBus(1)
IOError: [Errno 2] No such file or directory
Anyone got any clues.
Oh, I tried to clone the repo also, to the same end.
Cheers,
Simon.
Looks like you don’t have i2c enabled, and the Python3 module for Scroll pHAT isn’t installed;
sudo apt install python3-scrollphat
Then enable i2c in:
sudo raspi-config
Thanks for the quick reply.
All of that has been done, and I get the same response:
pi@HAL9000:~ $ sudo apt install python3-scrollphat
Reading package lists… Done
Building dependency tree
Reading state information… Done
python3-scrollphat is already the newest version (0.0.7).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@HAL9000:~/Pimoroni/scroll-phat/examples $ python3 test-all.py
Traceback (most recent call last):
File “test-all.py”, line 7, in
import scrollphat
ImportError: No module named ‘scrollphat’
Oddly, it is not throwing an error at the:
import math
import sys
import time
Any ideas?
Just checked the ‘PiGlow’ scripts.
Same deal:
pi@HAL9000:~/Pimoroni/piglow/examples $ python3 bar.py
Traceback (most recent call last):
File “bar.py”, line 5, in
import piglow
ImportError: No module named ‘piglow’
Yet the python games work OK.
What does python3 --version
say?
May also be worth checking:
python3 -c "import sys;print(sys.path)"
and
dpkg -L python3-scrollphat
Here you go…
pi@HAL9000:~ $ python3 --version
Python 3.5.3
pi@HAL9000:~ $ python3 -c “import sys;print(sys.path)”
[‘’, ‘/usr/lib/python35.zip’, ‘/usr/lib/python3.5’, ‘/usr/lib/python3.5/plat-arm-linux-gnueabihf’, ‘/usr/lib/python3.5/lib-dynload’, ‘/usr/local/lib/python3.5/dist-packages’, ‘/opt/aiy/projects-python/src’, ‘/usr/lib/python3/dist-packages’]
pi@HAL9000:~ $ dpkg -L python3-scrollphat
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/python3-scrollphat
/usr/share/doc/python3-scrollphat/changelog.gz
/usr/share/doc/python3-scrollphat/copyright
/usr/lib
/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/scrollphat-0.0.7.egg-info
/usr/lib/python3/dist-packages/scrollphat-0.0.7.egg-info/top_level.txt
/usr/lib/python3/dist-packages/scrollphat-0.0.7.egg-info/PKG-INFO
/usr/lib/python3/dist-packages/scrollphat-0.0.7.egg-info/dependency_links.txt
/usr/lib/python3/dist-packages/scrollphat
/usr/lib/python3/dist-packages/scrollphat/init.py
/usr/lib/python3/dist-packages/scrollphat/IS31FL3730.py
/usr/lib/python3/dist-packages/scrollphat/font.py
Do I need to add a path somewhere?
These are pretty much identical to what I see on my local system. Python is the same version, and it has '/usr/lib/python3/dist-packages'
in its path.
What happens if you:
python3 -c "import scrollphat"
Same error unfortunately:
pi@HAL9000:~ $ python3 -c “import scrollphat”
Traceback (most recent call last):
File “”, line 1, in
ImportError: No module named ‘scrollphat’
This is a completely fresh install of the OS too, so no tinkering by myself.
I wonder if the files are simply broken. Filesystem corruption or otherwise?
You could prod at them with cat /usr/lib/python3/dist-packages/scrollphat/__init__.py
etc. but I suspect that might just be a waste of time.
This could be worth a try:
sudo apt remove --purge python3-scrollphat
sudo apt install python3-scrollphat
Edit: ^ just flipped the above two commands, I put them in reverse order :D
Also noticed the above in your sys.path
, might be worth checking if this directory exists since I’m not sure what Python will do if it doesn’t.
So, I purged and reinstalled.
Getting a different set of errors now:
pi@HAL9000:~/Pimoroni/scroll-phat/examples $ python3 test-all.py
Traceback (most recent call last):
File “test-all.py”, line 7, in
import scrollphat
File “/usr/lib/python3/dist-packages/scrollphat/init.py”, line 20, in
controller = IS31FL3730(smbus, font)
File “/usr/lib/python3/dist-packages/scrollphat/IS31FL3730.py”, line 17, in init
self.bus = self.bus.SMBus(1)
FileNotFoundError: [Errno 2] No such file or directory
Ah, so it was corrupt.
Enable i2c as mentioned above: sudo raspi-config
ooh. no, that directory doesn’t exist, it’s:
> /home/pi/AIY-projects-python/src
How do I change it?
The i2c is enabled.
I’ve checked via both CLI and GUI.
You can check if i2c is actually enabled by looking at:
ls /dev/i2c*
dmesg | grep i2c
lsmod | grep i2c
cat /boot/config.txt | grep i2c
You should see output like this:
pi@raspberrypi:~ $ ls /dev/i2c*
/dev/i2c-1
pi@raspberrypi:~ $ dmesg | grep i2c
[ 2.685060] i2c /dev entries driver
pi@raspberrypi:~ $ lsmod | grep i2c
i2c_bcm2835 16384 0
i2c_dev 16384 0
pi@raspberrypi:~ $ cat /boot/config.txt | grep i2c
dtparam=i2c_arm=on
There’s a good chance if that one package was corrupt that more could be wrong with your system, you should probably re-image it.
Does this mean i2c is alive or not?
pi@HAL9000:~ $ ls /dev/i2c*
ls: cannot access ‘/dev/i2c*’: No such file or directory
pi@HAL9000:~ $ dmesg | grep i2c
[ 2.411193] i2c /dev entries driver
pi@HAL9000:~ $ lsmod | grep i2c
i2c_dev 6913 0
pi@HAL9000:~ $ cat /boot/config.txt | grep i2c
dtparam=i2c_arm=on
I can go back to an older image if needed, but I never used any Hats with that, so don’t know if I’ll have similar issues.
Worth a try though.
Looks like the i2c_bcm2835
module is missing there, which wont help. Possibly suffered the same fate as Scroll pHAT.
You may be able to recover with a kernel reinstall:
sudo apt update
sudo apt upgrade
sudo apt install --reinstall raspberrypi-bootloader raspberrypi-kernel
OK, so that got the i2c interface running.
Now I’m getting smbus errors.
pi@HAL9000:~/Pimoroni/scroll-phat/examples $ ls /dev/i2c*
/dev/i2c-1
pi@HAL9000:~/Pimoroni/scroll-phat/examples $ dmesg | grep i2c
[ 2.468308] i2c /dev entries driver
pi@HAL9000:~/Pimoroni/scroll-phat/examples $ lsmod | grep i2c
i2c_bcm2835 16384 0
i2c_bcm2708 16384 0
i2c_dev 16384 0
pi@HAL9000:~/Pimoroni/scroll-phat/examples $ cat /boot/config.txt | grep i2c
dtparam=i2c_arm=on
pi@HAL9000:~/Pimoroni/scroll-phat/examples $ python3 test-all.py
Traceback (most recent call last):
File “test-all.py”, line 7, in
import scrollphat
File “/usr/lib/python3/dist-packages/scrollphat/init.py”, line 20, in
controller = IS31FL3730(smbus, font)
File “/usr/lib/python3/dist-packages/scrollphat/IS31FL3730.py”, line 21, in init
self.set_mode(self.i2cConstants.MODE_5X11)
File “/usr/lib/python3/dist-packages/scrollphat/IS31FL3730.py”, line 62, in set_mode
self.bus.write_i2c_block_data(self.i2cConstants.I2C_ADDR, self.i2cConstants.CMD_SET_MODE, [self.i2cConstants.MODE_5X11])
OSError: [Errno 121] Remote I/O error
Think I’m going to revert to an older image, see how that goes.
I did have an issue getting scrollphat up and running on the AIY image way back when it was first released. Not sure if it’s the same issue: https://github.com/pimoroni/scroll-phat/issues/73