Cannot export styled data frame as image: OSError: Chrome executable not able to be found on your machine

I want to style (conditionally format) a dataframe and add it to a powerpoint/document which can be downloaded on the Streamlit app.

This is easily done locally, by using the dataframe-image package:

import dataframe_image as dfi
from io import BytesIO
from pptx import Presentation

df_styled = df.style.format(precision=0)
temp_file = BytesIO()
dfi.export(df_styled, temp_file)
slide.shapes.add_picture(temp_file)

However, when I then do this on my Streamlit Cloud app, it fails, saying:
OSError: Chrome executable not able to be found on your machine

I tried searching how to fix this error message but couldn’t seem to with chrome_installer etc. Does anyone know how to fix this?

A possible work around could be to convert the dataframe to HTML, then export the HTML to an image but I think, although I could style this with CSS, I would lose the ability to conditionally format numbers.

According to the pypi page this should be fixed by installing Chrome or Brave. I guess Chromium will do too.

Hm yeh I saw that but how do you install it into your GitHub repo as I can’t seem to just add a chrome Python package to my requirements.txt file

Those dependencies go in packages.txt

You need to find out what debian package installs one of those browsers.

So I put this in the packages.txt
chromium-chromedriver

I then download the chromium package from their website, put the file into my lib folder as it says here, but that didn’t work and Streamlit said it was looking for a ‘chromium-chromedriver’ folder, so literally created a folder called that and put the file in there, and now the app is just forever loading without any other message :confused:

Sorry I just don’t really know about this package stuff - I might just have to write it in HTML/CSS haha

I think you just need to put chromium in packages.txt.

that doesn’t work and the web app just reboots forever