Raspberry pi streamlit

I am working on a couple of streamlit apps which will eventually be deployed in docker containers on a raspberry pi, and thought I would start this thread incase anyone else is using a pi for deployment.

Installation

On an RPi 4 with raspbian Buster.
It was necessary to first:

$ sudo apt-get install libatlas-base-dev

but I was then able to run streamlit on rpi with no problems, viewing the app using the built in Chromium browser.

Apps

My primary use case is an app to facilitate the optimisation of parameters in a computer vision system that is integrated to my home automation platform. However I think streamlit on an rpi could also have many applications in education, museums/galleries, and in small businesses.

6 Likes

I know of a couple of users who have told me they are using pi. I’ll ping them to see if they have any thoughts for you!

2 Likes

Got a POC working, it is the streamlit demo running in a docker container on an RPi4. I’ve actually installed it as a Home Assistant addon, which provides a nice UI for managing docker images on the pi. This opens up the possibility of creating streamlit data science apps for Home Assistant, or just using Home Assistant as a user friendly way for non technical people to deploy the streamlit apps. I think I will create an app for doing prediction of time series sensor data using the prophet library.

Screenshot from my ipad below:

4 Likes

Hello,
I am having issues installing streamlit in a virtualenv on RPi 3 B+ using python 3.7.3. Problem installing dependency pyarrow. The following is the error.

ERROR: Could not build wheels for pyarrow which use PEP 517 and cannot be installed directly

How to resolve this issue?

In my experience use of virtualenv on pi can cause issues, try installing system wide then progress from there

Thanks a lot for your quick reply. But I faced the same problem while installing it on a system level.

Installing streamlit==0.62.0 temporarily solved my problem.

Appears pyarrow dependency is not pinned, so it is a bit surprising that installing an earlier version of streamlit solved this issue. Any ideas @randyzwitch ?

A downgrade “works”, because pyarrow is part of 0.63 and Components. The point is just to be able to pass dataframes to the front-end, I don’t know that we necessarily need a specific version.

Seeing the PEP517 message though and Googling brought me to:

Is Raspberry Pi a 32-bit system? It sounds like Arrow has an issue here with 32-bit and pip.

There are both 32 bit and 64 bit in circulation, but 32 bit is far more common. I just tried to install streamlit on a 32bit pi4 and it failed. @nightmareforev you can check your OS version following this instruction.

Yeah, mine is 32 bit too.
I running Raspbian buster on armv7l.

Hello,

First time posting to the streamlit discussions. I’ve also been trying to install streamlit on a raspi4b and running into an issue compiling pyarrow. I’m on a 64bit ubuntu with an armv8/aarch64 cpu. It looks like the architecture flag for gcc -march=armv8-a is being rejected by the compiler for some reason. I don’t know enough to go any further in debugging this issue. I hope this helps!

I would also like to get streamlit running on my pi.

2 Likes

I’m hitting the same problem!
I tried several versions of pyarrow (0.9.0, 0.10.0, 0.17.1, 1.0.0) but I wasn’t able to install any of them unfortunately.

Is there a workaround other than downgrading streamlit?

Maybe try using miniconda as your build environment? If you can do conda install pyarrow and get a successful install, you can run pip install streamlit after and hopefully get a better result.

Otherwise, not sure what a temporary fix might be. Downgrading works for the short-term, but we are looking to move more of our functionality to Arrow, so we should find a more reasonable solution