setting-up-streamlit-environment

Par streamlit · agent-skills

Configuration des environnements Python pour les applications Streamlit. À utiliser lors de la création d'un nouveau projet ou de la gestion des dépendances. Couvre uv pour la gestion des dépendances et l'exécution des applications.

npx skills add https://github.com/streamlit/agent-skills --skill setting-up-streamlit-environment

Environnement Streamlit

Utilisez le gestionnaire de dépendances que le projet utilise déjà (pip, poetry, conda, etc.). Si vous partez de zéro et que uv est disponible, c'est un bon choix par défaut—rapide, fiable et crée des environnements isolés automatiquement.

Si uv n'est pas installé, demandez la permission à l'utilisateur avant de l'installer.

CRITIQUE : Toujours utiliser la dernière version de Streamlit

Spécifiez toujours streamlit>=1.53.0 (ou la dernière version) dans les dépendances. Plusieurs fonctionnalités et patterns Streamlit dans ces skills nécessitent des versions récentes. Les anciennes versions de streamlit causeront des erreurs avec :

  • Material icons (:material/icon_name:)
  • st.pills(), st.segmented_control()
  • Les décorateurs de caching modernes
  • Les APIs de navigation

Quand vous mettez en place un nouveau projet ou en corrigez un existant, vérifiez et mettez toujours à jour la version de streamlit.

Utiliser uv

Si uv est disponible, voici comment configurer un projet Streamlit.

Démarrage rapide (venv uniquement)

Pour les applications simples, créez juste un environnement virtuel :

uv venv
source .venv/bin/activate  # ou .venv\Scripts\activate sur Windows
uv pip install streamlit

Lancez avec :

streamlit run streamlit_app.py

Configuration de projet complète

Pour les projets plus volumineux ou quand vous avez besoin de builds reproductibles :

uv init my-streamlit-app
cd my-streamlit-app
uv add streamlit

Cela crée :

  • pyproject.toml avec les dépendances
  • uv.lock pour les builds reproductibles
  • .venv/ environnement virtuel

Lancez avec :

uv run streamlit run streamlit_app.py

Avec options

Évitez de définir des options sauf si vous avez une raison spécifique :

streamlit run streamlit_app.py --server.headless true  # Uniquement pour les environnements automatisés/CI

Ajouter des dépendances

# Avec l'approche venv
uv pip install plotly snowflake-connector-python

# Avec le projet complet (uv init)
uv add plotly snowflake-connector-python

Structure du projet

Gardez-le simple. Pour la plupart des applications :

my-streamlit-app/
├── .venv/
└── streamlit_app.py

Ajoutez plus seulement si nécessaire :

  • app_pages/ → Uniquement pour les applications multi-pages
  • .streamlit/config.toml → Uniquement si vous personnalisez le thème ou les paramètres
  • .streamlit/secrets.toml → Uniquement si vous utilisez des secrets (ajoutez à .gitignore)
  • pyproject.toml → Uniquement si vous utilisez uv init pour les builds reproductibles

Convention

Nommez votre fichier principal streamlit_app.py pour la cohérence. C'est ce que Streamlit attend par défaut.

Ce qui va dans le module principal :

  • Quand vous utilisez la navigation : c'est un routeur qui définit les pages et les exécute
  • Quand il n'y a pas de navigation : c'est la page d'accueil avec votre contenu principal

Exemple pyproject.toml

[project]
name = "my-streamlit-app"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
    "streamlit>=1.53.0",
    "plotly>=5.0.0",
    "snowflake-connector-python>=3.0.0",
]

[tool.uv]
dev-dependencies = [
    "pytest>=8.0.0",
]

Références

Skills similaires