0pwosqyw83vqbv4c.jpeg

Poner orden en una aplicación Python Streamlit a través de una estructura de carpetas de proyecto organizada

Imagen generada por DALLE 3 Por el autor. Representa pasar del caos de la izquierda al orden de la derecha.

Si está trabajando con un proyecto Python que se extiende más allá de unos simples scripts y archivos de datos, sabrá los dolores de cabeza que se pueden generar a medida que el proyecto crece. Esto puede dar como resultado una carpeta desordenada que consta de archivos de entrada, archivos intermedios mezclados con varios archivos Python y/o archivos de cuaderno, e incluso documentación del proyecto. Esto puede dificultar la búsqueda de los datos o las funciones que necesita cuando los busca.

Existen numerosos artículos que detallan cómo estructurar proyectos de Python, que están muy bien detallados. Sin embargo, cuando se trata de iluminado (una de mis herramientas Python favoritas para desarrollar aplicaciones basadas en web muy rápidamente) Tuve problemas para encontrar información sobre la mejor manera de estructurar una aplicación Streamlit.

Como resultado, he elaborado este artículo para sugerir una posible forma de estructurar su aplicación Streamlit para evitar que se convierta en un enredo de archivos.

El iluminado Estructura de carpetas de aplicaciones y Cortador de galletas iluminado La plantilla propuesta aquí no son las únicas formas en que se podría estructurar una aplicación. Hay muchos otros factores a considerar, como el tipo de aplicación que está creando y para quién es esa aplicación. Le animo a que utilice las sugerencias de este artículo para su propia aplicación y la adapte a sus necesidades.

Cuando estoy empezando con iluminado (especialmente cuando no sé completamente lo que quiero lograr o si estoy experimentando) a menudo comienzo con un directorio simple y una única app.py archivo.

streamlit_app 
└── app.py

Esto es genial, ya que podemos poner todo nuestro código en app.py y luego invocar el comando streamlit run app.py para iniciar la aplicación en el navegador.

Esta simple carpeta y archivo único pueden extenderse repentinamente a múltiples archivos a medida que los datos se recopilan de las fuentes relevantes o se generan desde la fuente principal. app.py archivo.

streamlit_app
├── app.py
├── data1.csv
├── random_data_file.csv
└── output.csv