KEPLIN Docs

Dependencias y archivos

Organizar el script en varios archivos, gestionar su carpeta privada, instalar packages pip y reutilizar código de otros scripts.

Un script raramente es solo el main.py. Esta página cubre todo lo que vive a su alrededor: los archivos del script (módulos Python, configuración, datos generados), los packages pip instalados en su entorno, y los scripts usados como dependencia — código de otro script, de esta app o de otra, importado por el tuyo.

Todo esto se gestiona en el árbol lateral: expande el nodo del script (la flecha a la izquierda del nombre) y aparecen tres entradas — Archivos, Dependencias y Programaciones. Las dos primeras son el asunto de esta página.

El nodo del script expandido en el árbol — Archivos, Dependencias y Programaciones.
El nodo del script expandido en el árbol — Archivos, Dependencias y Programaciones.

La carpeta del script

Cada script tiene una carpeta privada en el servidor. Ahí viven el main.py, los módulos que crees, los archivos que subas y todo lo que el script escriba en disco durante las ejecuciones. Dos puntos importantes:

  • La carpeta es la carpeta de trabajo de las ejecuciones: una ruta relativa en el código (open("dados/clientes.csv")) lee y escribe ahí dentro.
  • La carpeta es privada del script — otro script no la toca, ni por error.

El nodo Archivos en el árbol muestra la carpeta tal como está, con el recuento de archivos delante. Hacer clic en un archivo lo abre en el editor del script.

Crear archivos y carpetas

Pasa el ratón por la fila Archivos para ver sus tres botones:

Botón Qué hace
Nuevo archivo Crea un archivo de cualquier extensión — código, config, datos.
Nueva carpeta Crea una carpeta lógica dentro de la carpeta del script.
Subir archivos Envía archivos de tu ordenador a la carpeta del script.

Para crear un archivo:

  1. Haz clic en Nuevo archivo.
  2. Rellena Ruta del archivo — ej.: utils.py o dados/clientes.csv. Las subcarpetas se escriben con / y se crean si no existen.
  3. Haz clic en Crear. Si es un archivo de texto, se abre enseguida en el editor.

El diálogo Nuevo archivo — cualquier extensión, subcarpetas con /.
El diálogo Nuevo archivo — cualquier extensión, subcarpetas con /.

Gestos directos en el árbol:

  • Renombrar: doble clic en el nombre, escribe, Enter.
  • Mover: arrastra el archivo (o la carpeta) a otra carpeta del árbol.
  • Quitar: la × que aparece al pasar el ratón por la fila. La eliminación es inmediata y definitiva — y los import que usaban el archivo pasan a fallar.
  • Subir: además del botón, puedes arrastrar archivos de tu ordenador directamente al árbol — soltarlos en una carpeta los envía ahí.

Atención

Tres archivos están protegidos y no pueden renombrarse ni quitarse: main.py (la entrada del script), api_manager.py (el SDK, puesto ahí para el autocompletado) y requirements.txt (la lista de packages pip, gestionada por el panel de dependencias).

Dividir el script en módulos

Puedes partir el código en cuantos archivos .py quieras — todos en la carpeta del script — e importarlos directamente, sin configuración:

# config.py
CONFIG = {"limite": 100, "moeda": "EUR"}
# main.py
from api_manager import db, log
from config import CONFIG


def main(input):
    linhas = db("Dados CRM").query(
        "select * from oportunidades limit ?", [CONFIG["limite"]]
    )
    log(len(linhas), "oportunidades lidas")
    return {"total": len(linhas)}

El editor conoce tus módulos: el autocompletado sugiere from config import … como sugiere el SDK.

Archivos generados por las ejecuciones

El script puede escribir archivos a placer — un Excel generado para enviar por correo, un CSV de trabajo, una caché. Quedan en la carpeta del script y aparecen en el nodo Archivos, donde puedes abrirlos en el editor o quitarlos.

Consejo

Un script puede correr muchas veces. Usa nombres deterministas — ej.: relatorio_2026-08.xlsx, reescrito en cada ejecución — en vez de nombres únicos que se acumulan hasta llenar el disco.

Dos límites del editor (no del script):

  • Los archivos binarios (un .xlsx, una imagen) no se abren en el editor — el árbol avisa. El script sigue leyéndolos y escribiéndolos con normalidad.
  • Los archivos de texto por encima de 10 MB tampoco se abren en el editor, por la misma razón — el script sigue pudiendo usarlos.

Instalar packages pip

La biblioteca estándar de Python está siempre disponible. Para packages externos (requests, pandas, openpyxl, …), cada script tiene su propio entorno Python, aislado de los demás — instalar aquí no cambia nada en los otros scripts.

  1. En el árbol, expande el script y haz clic en la llave inglesa de la fila Dependencias (Gestionar dependencias (packages y scripts)).
  2. En el modal Dependencias del script (pip + scripts), sección Añadir package del PyPI, escribe el nombre exacto del package — ej.: openpyxl — y haz clic en Verificar. La plataforma confirma en el PyPI que existe y muestra el nombre, la versión más reciente y la descripción.
  3. Haz clic en Instalar. El package queda en la tabla Packages instalados, con la versión.
  4. En el código, importa con normalidad: import openpyxl.

El gestor de dependencias — entorno Python, añadir package del PyPI y la lista de instalados.
El gestor de dependencias — entorno Python, añadir package del PyPI y la lista de instalados.

La línea Entorno Python: en la parte superior del modal dice el estado del entorno del script:

Estado Significa
por crear (se crea en la primera instalación o ejecución) Aún no se instaló ningún package ni el script corrió.
listo El entorno existe y es utilizable — la versión de Python aparece al lado.
dañado Algo rompió el entorno (ej.: una actualización en el servidor). Usa Reconstruir venv.

Tres gestos más en el mismo modal:

  • Reinstalar — aparece en el lugar de Instalar cuando el package ya está; fuerza una reinstalación.
  • Desinstalar — en la fila del package instalado. Los import de ese package en el script pasan a fallar hasta que se reinstale.
  • Reconstruir venv — borra y recrea el entorno entero, reinstalando todos los packages de la lista. Útil después de una actualización de Python en el servidor.

Nota

El entorno se reconstruye solo a partir de la lista de packages siempre que haga falta — la lista es la verdad, el entorno se deriva de ella. Los packages también aparecen bajo la fila Dependencias en el árbol, cada uno con su versión.

Scripts como dependencia

Además de packages, un script puede reutilizar otro script — de esta app o de otra a la que tengas acceso. Los archivos del script referenciado quedan disponibles en una carpeta con el alias que elijas, sincronizada antes de cada ejecución: corriges el script original, y quien depende de él pasa a usar la versión corregida.

  1. Abre el gestor de dependencias (llave inglesa de la fila Dependencias).
  2. En la sección Scripts como dependencia: elige la App, elige el Script, y dale un Alias (import) — ej.: consolidado. El alias tiene que ser un identificador Python válido.
  3. Haz clic en Añadir.
  4. En el código, importa por los módulos del alias:
from consolidado.main import main as consolidar


def main(input):
    resultado = consolidar({"args": {}, "prev": None, "context": {}})
    return {"consolidado": resultado}

Reglas que la plataforma impone al añadir:

  • Solo aparecen scripts del mismo runtime y de apps a las que tienes acceso.
  • Un script no puede depender de sí mismo.
  • El alias no puede repetirse ni coincidir con un archivo o carpeta que ya exista en la carpeta del script.

Atención

Los packages pip del script referenciado no vienen detrás. Si su código importa requests, instala requests también en este script. La versión del script referenciado aparece en el árbol como app/script@versión — es la Versión definida en sus Definiciones del script.

Para quitar, usa la × de la fila de la dependencia (en el árbol o en el gestor). La carpeta del alias sale del disco y los import que la usaban fallan en la próxima ejecución.

Preguntas frecuentes

Instalé un package y el import sigue fallando. Confirma el nombre exacto del módulo — el package Pillow se importa como PIL, por ejemplo. La tabla Packages instalados muestra el nombre del package; el nombre del módulo viene de su documentación.

¿Por qué no puedo borrar el requirements.txt? Es uno de los tres archivos protegidos — es la lista de packages del script, mantenida por el panel de dependencias. Para quitar un package, usa Desinstalar en el gestor de dependencias, no el archivo.

Un colega cambió el script del que dependo. ¿Cuándo recoge el mío el cambio? En la ejecución siguiente: la carpeta del alias se sincroniza antes de cada ejecución de tu script.