Protobuf 3.20.1 which is incompatible

So here’s the entire traceback:

File "/home/appuser/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 562, in _run_script
    exec(code, module.__dict__)
File "/app/codex-for-seo/streamlit_app.py", line 3, in <module>
    from streamlit_gallery import apps
File "/app/codex-for-seo/streamlit_gallery/apps/__init__.py", line 3, in <module>
    from .m2_codex_data import main as m2_codex_data
File "/app/codex-for-seo/streamlit_gallery/apps/m2_codex_data.py", line 26, in <module>
    from streamlit.scriptrunner.script_run_context import get_script_run_ctx

Your code in codex-for-seo/streamlit_gallery/apps/m2_codex_data.py seems to be using an internal (subject to change without deprecation!) API that no longer exists in Streamlit 1.13.0.

You have two options.

  1. Either downgrade to an older version that does contain the method, or
  2. Wait for the next release on the 27th and modify your code accordingly to use a new “internal” (i.e.: subject to change without deprecation!) API to access a copy of the headers from the current session’s incoming WebSocket request; described in this thread:Streamlit.scriptrunner on streamlit 1.13.0 and GitHub issue: _get_websocket_headers() by tconkling · Pull Request #5457 · streamlit/streamlit · GitHub

Also, read this GitHub issue for more context on the relocation of scriptrunner to the streamlit.runtime module