Skip to content

Streamlit Interface

About

PAA can package and run Streamlit apps from installed packages and local app files. Core dependency used under the hood: Streamlit. For package Streamlit apps, PAA expects one app file per package, with filename matching the package/module name. For cross-component preflight checks before packaging, see concepts/prepackaging_todo.md.

Quick Start

1. Initialize Streamlit app scaffold

paa init-streamlit your-package-1

This creates streamlit/your_package_1.py (or configured streamlit_dir).

2. Initialize Streamlit config scaffold

paa init-streamlit-config

This creates .paa.streamlit.config.

3. Run Streamlit app from package

paa run-streamlit --package your-package-1

4. Run Streamlit app from file

paa run-streamlit --path ./streamlit/your_package_1.py

Operational Commands

Initialize Streamlit app scaffold:

paa init-streamlit your-package-1

Initialize Streamlit config:

paa init-streamlit-config

Run app from packaged module:

paa run-streamlit --package your-package-1

Run app from local file:

paa run-streamlit --path ./streamlit/your_package_1.py

Python File Layout

  • path: streamlit/<module_name>.py (or configured streamlit_dir)
  • expected structure:
  • streamlit import
  • package import
  • page content definitions

Recommended scaffold layout:

import streamlit as st
from your_package_1 import *

st.set_page_config(page_title="your-package-1", layout="wide")
st.title("your-package-1 app")
st.caption("Generated by `paa init-streamlit`.")
st.write("Status: ok")

Optional .paa.streamlit.config

server:
  headless: true
  port: 8501
  address: "0.0.0.0"

theme:
  base: "light"

What to edit: - server.address and server.port for target environment - theme keys to align with preferred UI defaults

Importing From Package

Default import style for Streamlit modules: - from <package> import *

Guidance: - import from packaged module namespace, not PPR component file paths. - keep expensive setup out of global import scope when possible.

Notes

  • run-streamlit can use package source (--package) or file source (--path).
  • app config is optional; default path is .paa.streamlit.config.
  • Imports from the package Streamlit file are included in dependency extraction during packaging, similar to the main module.