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.

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:
- Haz clic en Nuevo archivo.
- Rellena Ruta del archivo — ej.:
utils.pyodados/clientes.csv. Las subcarpetas se escriben con/y se crean si no existen. - Haz clic en Crear. Si es un archivo de texto, se abre enseguida en el editor.

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
importque 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.
- En el árbol, expande el script y haz clic en la llave inglesa de la fila Dependencias (Gestionar dependencias (packages y scripts)).
- 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. - Haz clic en Instalar. El package queda en la tabla Packages instalados, con la versión.
- En el código, importa con normalidad:
import openpyxl.

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
importde 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.
- Abre el gestor de dependencias (llave inglesa de la fila Dependencias).
- 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. - Haz clic en Añadir.
- 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.