Skip to content

Comment exécuter des applications Streamlit et les optimiser correctement

Streamlit a révolutionné la façon dont nous construisons et déployons des applications web axées sur les données. Mais comment exécuter Streamlit? Comment pouvez-vous optimiser vos applications Streamlit pour une performance maximale? Dans ce guide complet, nous répondrons à ces questions et plus encore, en vous fournissant les connaissances et les outils dont vous avez besoin pour maîtriser Streamlit.

Comprendre Streamlit

Qu'est-ce que Streamlit? Streamlit est une bibliothèque Python open source qui permet aux développeurs de créer facilement des applications web interactives axées sur les données. Il est conçu pour aider les data scientists et les ingénieurs à rationaliser leur travail, en transformant des scripts en applications web partageables en seulement quelques lignes de code.

L'intégration de Streamlit avec Python, l'un des langages de programmation les plus populaires au monde, en fait un outil puissant pour l'analyse et la visualisation des données. Mais Streamlit n'est pas seulement une bibliothèque Python, c'est aussi un outil de mots-clés à portée de main. Cela signifie qu'il peut vous aider à identifier et à optimiser les mots-clés qui sont proches de se classer en première page des résultats des moteurs de recherche, améliorant ainsi la visibilité et le trafic de votre site web.

Premiers pas avec Streamlit

Exécuter Streamlit est simple, quel que soit votre système d'exploitation. Que vous utilisiez Windows, Linux ou macOS, vous pouvez mettre en route votre application Streamlit en un rien de temps.

Exécution de Streamlit sur Windows

Pour exécuter Streamlit sur Windows, vous devez d'abord l'installer. Ouvrez votre invite de commande et entrez la commande suivante:

pip install streamlit

Une fois Streamlit installé, vous pouvez l'exécuter en entrant la commande suivante:

streamlit run votre_script.py

Remplacez votre_script.py par le nom de votre script Python. Streamlit s'ouvrira alors dans votre navigateur web par défaut, affichant votre application pour que vous puissiez interagir avec elle.

Exécution de Streamlit sur un serveur

Exécuter Streamlit sur un serveur suit un processus similaire. Après avoir installé Streamlit sur votre serveur, utilisez la commande streamlit run suivie du chemin vers votre script Python. Vous pourrez ensuite accéder à votre application Streamlit via l'adresse IP de votre serveur et le numéro de port sur lequel Streamlit s'exécute.

Exécution de Streamlit depuis VS Code

Visual Studio Code (VS Code) est un éditeur de code populaire qui prend en charge Streamlit. Pour exécuter Streamlit depuis VS Code, ouvrez votre script Python dans l'éditeur, puis ouvrez le terminal et saisissez la commande streamlit run suivie du chemin vers votre script.

Création et exécution de votre première application Streamlit

Maintenant que vous savez comment exécuter Streamlit, il est temps de créer votre première application Streamlit. Dans cette section, nous vous guiderons pas à pas dans le processus, de l'écriture de vos premières lignes de code au déploiement de votre application sur Render.

Rédaction de votre première application Streamlit

Une application Streamlit est simplement un script Python qui utilise la bibliothèque Streamlit. Voici un exemple simple:

import streamlit as st
 
st.title('Bonjour, Streamlit!')
st.write('Ceci est ma première application Streamlit.')

Lorsque vous exécutez ce script avec Streamlit, une page web s'affichera avec le titre "Bonjour, Streamlit!" et le texte "Ceci est ma première application Streamlit."

Déploiement de votre application Streamlit sur Render

Render est une plateforme cloud qui facilite le déploiement d'applications web, y compris celles construites avec Streamlit. Pour déployer votre application Streamlit sur Render, vous devrez créer un Dockerfile qui indique à Render comment construire et exécuter votre application. Voici un exemple:

FROM python:3.7
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD streamlit run app.py

Ce Dockerfile commence par une image Python 3.7, définie le répertoire de travail sur /app, copie les fichiers de votre application dans l'image, installe les packages Python nécessaires et exécute enfin votre application Streamlit.

Une fois que vous avez créé votre Dockerfile, vous pouvez télécharger votre application sur Render et elle se construira et se déploiera automatiquement pour vous.

Optimisation de votre application Streamlit

Les applications Streamlit sont conçues pour être rapides et efficaces, mais comme pour tout logiciel, il y a toujours place à l'amélioration. Dans cette section, nous explorerons certaines techniques pour optimiser vos applications Streamlit, en mettant l'accent sur l'amélioration des performances et de la réactivité.

Amélioration des performances de l'application

Streamlit offre des primitives de mise en cache puissantes qui peuvent considérablement améliorer les performances de votre application. Ces primitives de mise en cache permettent à votre application de rester performante même lors du chargement de données à partir du web, de la manipulation de grands ensembles de données ou de l'exécution de calculs coûteux.

Streamlit propose deux principaux types de mise en cache: @st.cache_data et @st.cache_resource. Le décorateur @st.cache_data est utilisé pour mettre en cache les fonctions qui renvoient des données, telles que les transformations de dataframe, les requêtes de base de données ou l'inférence d'apprentissage automatique. En revanche, @st.cache_resource est utilisé pour mettre en cache les fonctions qui renvoient des ressources globales, telles que les connexions de base de données ou les modèles d'apprentissage automatique.

Voici un exemple de l'utilisation de ces décorateurs:

@st.cache_data
def long_function(param1, param2):
    # Effectuer des calculs coûteux ici ou
    # récupérer des données à partir du web ici
    return data
 
@st.cache_resource
def init_model():
    # Renvoyer une ressource globale ici
    return pipeline(
        "sentiment-analysis",
        model="distilbert-base-uncased-finetuned-sst-2-english"
    )

Vous pouvez également effacer tous les caches de données en mémoire et sur disque en utilisant st.cache_data.clear() et st.cache_resource.clear().

Optimisation du rendu de l'application

Les performances d'une application Streamlit peuvent également être affectées par la complexité de son interface utilisateur. Si votre application devient non réactive lors du redimensionnement de la fenêtre du navigateur ou de l'expansion/réduction de la barre latérale, cela peut être dû au rendu d'éléments d'interface utilisateur complexes. Un moyen d'optimiser le rendu de votre application Streamlit consiste à simplifier son interface utilisateur. Par exemple, au lieu d'utiliser un grand nombre de curseurs ou de curseurs de sélection, envisagez d'utiliser d'autres types de widgets d'entrée moins gourmands en ressources.

Une autre approche consiste à optimiser le rendu de vos graphiques. Si votre application inclut des graphiques complexes Plotly, envisagez d'utiliser l'option use_container_width=True lors de l'appel à st.plotly_chart. Cette option garantit que vos graphiques sont rendus à la taille optimale pour le conteneur de votre application, améliorant les performances de rendu.

Déploiement efficace des applications Streamlit

Lors du déploiement d'une application Streamlit, il est important de tenir compte des ressources requises par votre application et des capacités de votre plateforme de déploiement. Par exemple, si votre application effectue des calculs lourds ou traite de grands ensembles de données, vous devrez peut-être choisir une plateforme de déploiement disposant de suffisamment de ressources CPU et mémoire.

Un écueil courant lors du déploiement des applications Streamlit est de ne pas tenir compte de l'optimisation de la mémoire. Si votre application utilise une grande quantité de mémoire, elle peut planter lors du déploiement ou devenir non réactive. Pour éviter cela, envisagez d'utiliser des techniques telles que le caching, une manipulation efficace des données et le profilage de la mémoire pour réduire l'utilisation de la mémoire de votre application.

En résumé, l'optimisation d'une application Streamlit implique d'améliorer la performance des calculs, d'optimiser le rendu de l'interface utilisateur et de déployer votre application de manière efficace. En appliquant ces techniques, vous pouvez vous assurer que vos applications Streamlit sont rapides, réactives et fiables.

Fonctionnalités avancées de Streamlit

Streamlit n'est pas seulement un outil pour créer des applications web simples. C'est une plateforme puissante qui prend en charge une large gamme de fonctionnalités avancées, vous permettant de créer facilement des applications complexes et interactives. Une fois que vous êtes à l'aise avec les bases, vous pouvez commencer à explorer les fonctionnalités avancées de Streamlit. Celles-ci incluent :

  • Widgets interactifs : Streamlit prend en charge une large gamme de widgets interactifs, tels que des curseurs, des cases à cocher, des boutons radio, et plus encore. Ces widgets permettent à vos utilisateurs d'interagir avec votre application, de contrôler son comportement et de visualiser les données de différentes manières.

  • Caching des données : Comme nous l'avons déjà mentionné, les primitives de caching de Streamlit peuvent considérablement améliorer les performances de votre application. En mettant en cache les résultats de calculs coûteux, vous pouvez rendre votre application plus rapide et plus réactive.

  • État de session : La fonctionnalité d'état de session de Streamlit vous permet de conserver un état entre les exécutions, ce qui permet des interactions plus complexes. Par exemple, vous pouvez utiliser l'état de session pour mémoriser les entrées de l'utilisateur ou la page actuelle dans une application à plusieurs pages.

  • Composants : Les composants de Streamlit vous permettent d'étendre les fonctionnalités de Streamlit en intégrant d'autres bibliothèques et frameworks JavaScript. Vous pouvez utiliser des composants pour créer des widgets personnalisés, intégrer des visualisations interactives, et plus encore.

En maîtrisant ces fonctionnalités avancées, vous pouvez amener vos applications Streamlit à un niveau supérieur, en créant des applications complexes et interactives qui répondent aux besoins de vos utilisateurs.

De plus, vous pouvez créer un outil de visualisation de données sans code avec cette bibliothèque Python open source impressionnante :

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à intégrer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit sans effort.

PyGWalker pour la visualisation des données dans Streamlit (opens in a new tab)

Conclusion

Streamlit est un outil puissant pour créer des applications web basées sur les données. Avec son interface facile à utiliser et ses fonctionnalités étendues, il permet aux développeurs de transformer rapidement leurs scripts Python en applications web interactives. Que vous exécutiez Streamlit sur votre machine locale, sur un serveur ou dans VS Code, il est facile de commencer. Et avec les bonnes techniques d'optimisation, vous pouvez vous assurer que vos applications Streamlit sont rapides, réactives et fiables. Alors pourquoi attendre ? Commencez à explorer Streamlit dès aujourd'hui et découvrez comment il peut transformer vos flux de travail d'analyse et de visualisation des données.

Questions fréquemment posées

  1. Qu'est-ce que Streamlit ?

    Streamlit est une bibliothèque Python open source qui permet aux développeurs de créer facilement des applications web interactives basées sur les données. Elle est conçue pour aider les scientifiques des données et les ingénieurs à optimiser leur travail, en transformant les scripts en applications web partageables en seulement quelques lignes de code.

  2. Comment exécuter Streamlit sur ma machine locale ?

    Pour exécuter Streamlit sur votre machine locale, vous devez d'abord l'installer à l'aide de pip. Une fois installé, vous pouvez exécuter Streamlit en entrant la commande streamlit run votre_script.py dans votre invite de commande, en remplaçant votre_script.py par le nom de votre script Python.

  3. Comment puis-je optimiser mon application Streamlit ?

    Vous pouvez optimiser votre application Streamlit en utilisant les primitives de caching de Streamlit, en simplifiant l'interface utilisateur de votre application et en déployant votre application de manière efficace. Ces techniques peuvent aider à améliorer les performances de votre application, la rendant plus rapide et plus réactive.