9
votes

Comment exécuter / déboguer une application streamlit à partir d'un IDE

J'aime vraiment streamlit comme environnement de recherche, mélangeant un cahier / tableau de bord comme une sortie que je peux concevoir rapidement avec du code pur pour sa définition (pas de cellules, etc.) et la possibilité d'influencer mon code à travers des widgets pendant qu'il s'exécute.

Pour cela, je cherchais un moyen d'exécuter ou même de déboguer une application streamlit car son mode de démarrage par défaut est via la ligne de commande:

streamlit run code.py

Y a-t-il un moyen de faire l'un ou l'autre?

À votre santé


0 commentaires

3 Réponses :


14
votes

J'ai trouvé un moyen d'exécuter au moins le code de l'IDE (PyCharm dans mon cas). La commande streamlit run code.py appelle en fait python -m streamlit.cli run code.py , de sorte que cela puisse être configuré pour être ce qui est exécuté avec un IDE.

Dans mon cas, l' -m streamlit.cli run va dans le champ Options de l'interpréteur de la configuration Exécuter / Déboguer, le code.py va dans le champ Chemin du script comme prévu.

Configuration de PyCharm Run présentée ici

Malheureusement, le débogage de cette façon ne semble pas fonctionner puisque les paramètres ajoutés par PyCharm sont passés à streamlit au lieu du débogueur pydev.

Edit: Je viens de trouver un moyen de déboguer vos propres scripts. Au lieu de déboguer votre script, vous déboguez le module streamlit.cli qui exécute votre script. Pour ce faire, vous devez passer de Script path: du Script path: à Module name: dans le champ le plus haut (il y a une liste déroulante légèrement cachée ici ...) Ensuite, vous pouvez insérer streamlit.cli dans le champ. En tant que paramètres, vous ajoutez maintenant run code.py dans le champ Parameters: de la configuration d' run code.py / débogage. Configuration Exécuter / Déboguer ici


0 commentaires

0
votes

J'ai trouvé une solution alternative qui vous permet d'utiliser le débogage PyCharm de manière naturelle. run.py simplement un script d'exécution (que j'appelle run.py qui ressemble à ceci:

from streamlit import bootstrap

real_script = <name of your script>

bootstrap.run(real_script, f'run.py {real_script}', [])

et configurez cela comme une configuration d'exécution Python normale dans PyCharm.


0 commentaires

2
votes

Si vous êtes un utilisateur VS Code, vous pouvez déboguer votre application Streamlit en ajoutant la configuration suivante à votre fichier launch.json :

{
        "name": "Python:Streamlit",
        "type": "python",
        "request": "launch",
        "module": "streamlit.cli",
        "args": [
            "run",
            "${file}",
            "--server.port",
            "SPECIFY_YOUR_OWN_PORT_NUMBER_HERE"            ]
    }

La spécification du numéro de port vous permet de lancer l'application sur un numéro de port fixe chaque fois que vous exécutez votre script de débogage.

Une fois que vous avez mis à jour votre fichier launch.json, vous devez accéder à l'onglet Exécuter sur la gouttière gauche de l'application de code VS et lui indiquer la configuration Python à utiliser pour déboguer l'application:

Sélection de la configuration de débogage pour l'interpréteur python

Merci à git-steb de m'avoir indiqué la solution!


0 commentaires