I am trying to deploy a basic Streamlit app to Google App Engine Flex. Here are all the parts:
requirements.txt
streamlit
streamlit-image-select
app.yaml
runtime: python
env: flex
runtime_config:
python_version: 3
handlers:
- url: /images
static_dir: images
entrypoint: streamlit run app.py --server.port $PORT
app.py
import streamlit as st
from streamlit_image_select import image_select
CatPics = [
"https://i.ibb.co/Bt40nKL/cat1.jpg",
"https://i.ibb.co/qJG1x7w/cat2.jpg",
"https://i.ibb.co/9NJv0Cj/cat3.jpg"
]
Cat = image_select("Cats", CatPics)
st.write(Cat)
This app can be viewed in the browser when operated from localhost using python3 -m streamlit run app.py
The problem arises when I try to deploy to Google App Engine Flex. I attempt to deploy from my localhost using gcloud app deploy
but receive an error saying Could not find a version that satisfies the requirement streamlit-image-select (from -r requirements.txt (line 2))
If I remove the streamlit-image-select
line from the app.yaml file and then deploy again using gcloud app deploy
, the build process completes without error, however, when I load the app in the browser it throws an error ModuleNotFoundError: No module named 'streamlit_image_select'
Where am I going wrong? What do I need to do so that I can get this app deployed to Google App Engine Flex ?