KEPLIN Docs

Beroenden och filer

Dela upp skriptet i flera filer, sköta dess privata mapp, installera pip-paket och återanvända kod från andra skript.

Ett skript är sällan bara main.py. Den här sidan täcker allt som lever runt omkring det: skriptets filer (Python-moduler, konfiguration, genererade data), de pip-paket som är installerade i dess miljö, och de skript som används som beroenden — kod från ett annat skript, i den här appen eller i en annan, importerad av ditt.

Allt detta sköts i trädet i sidopanelen: fäll ut skriptets nod (pilen till vänster om namnet), så dyker tre poster upp — Filer, Beroenden och Scheman. De två första är ämnet för den här sidan.

Skriptets utfällda nod i trädet — Filer, Beroenden och Scheman.
Skriptets utfällda nod i trädet — Filer, Beroenden och Scheman.

Skriptets mapp

Varje skript har en privat mapp på servern. Där bor main.py, de moduler du skapar, de filer du laddar upp och allt som skriptet skriver till disk under körningarna. Två viktiga saker:

  • Mappen är körningarnas arbetsmapp: en relativ sökväg i koden (open("dados/clientes.csv")) läser och skriver där inne.
  • Mappen är privat för skriptet — inget annat skript rör den, inte ens av misstag.

Noden Filer i trädet visar mappen precis som den är, med antalet filer bredvid. Att klicka på en fil öppnar den i skriptets editor.

Skapa filer och mappar

Håll muspekaren över raden Filer för att se dess tre knappar:

Knapp Vad den gör
Ny fil Skapar en fil med vilken filändelse som helst — kod, konfiguration, data.
Ny mapp Skapar en logisk mapp inne i skriptets mapp.
Ladda upp filer Skickar filer från din dator till skriptets mapp.

Så här skapar du en fil:

  1. Klicka på Ny fil.
  2. Fyll i Filens sökväg — t.ex.: utils.py eller dados/clientes.csv. Undermappar skrivs med / och skapas om de inte finns.
  3. Klicka på Skapa. Är det en textfil öppnas den direkt i editorn.

Dialogen Ny fil — vilken filändelse som helst, undermappar med /.
Dialogen Ny fil — vilken filändelse som helst, undermappar med /.

Direkta gester i trädet:

  • Byt namn: dubbelklicka på namnet, skriv, Enter.
  • Flytta: dra filen (eller mappen) till en annan mapp i trädet.
  • Ta bort: × som dyker upp när du hovrar över raden. Borttagningen är omedelbar och slutgiltig — och de import som använde filen börjar misslyckas.
  • Ladda upp: förutom knappen kan du dra filer från din dator direkt till trädet — att släppa dem i en mapp skickar dem dit.

Atenção

Tre filer är skyddade och kan varken byta namn eller tas bort: main.py (skriptets ingång), api_manager.py (SDK:n, lagd där för autokompletteringens skull) och requirements.txt (listan över pip-paket, som sköts av beroendepanelen).

Dela upp skriptet i moduler

Du kan dela upp koden i hur många .py-filer du vill — alla i skriptets mapp — och importera dem direkt, utan konfiguration:

# 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), "lästa affärsmöjligheter")
    return {"total": len(linhas)}

Editorn känner till dina moduler: autokompletteringen föreslår from config import … precis som den föreslår SDK:n.

Filer som körningarna skapar

Skriptet kan skriva filer hur mycket det vill — en Excel-fil som ska skickas med e-post, en CSV att jobba med, en cache. De ligger kvar i skriptets mapp och dyker upp i noden Filer, där du kan öppna dem i editorn eller ta bort dem.

Dica

Ett skript kan köras många gånger. Använd deterministiska namn — t.ex.: relatorio_2026-08.xlsx, som skrivs över vid varje körning — i stället för unika namn som hopar sig tills disken är full.

Två gränser i editorn (inte i skriptet):

  • Binära filer (en .xlsx, en bild) öppnas inte i editorn — trädet varnar. Skriptet fortsätter att läsa och skriva dem som vanligt.
  • Textfiler över 10 MB öppnas inte heller i editorn, av samma skäl — skriptet kan fortfarande använda dem.

Installera pip-paket

Pythons standardbibliotek finns alltid tillgängligt. För externa paket (requests, pandas, openpyxl, …) har varje skript sin egen Python-miljö, isolerad från de andra — att installera här ändrar ingenting i de övriga skripten.

  1. Fäll ut skriptet i trädet och klicka på skiftnyckeln på raden Beroenden (Hantera beroenden (paket och skript)).
  2. I dialogrutan Skriptets beroenden (pip + skript), avsnittet Lägg till paket från PyPI, skriver du paketets exakta namn — t.ex.: openpyxl — och klickar på Kontrollera. Plattformen bekräftar på PyPI att det finns och visar namn, senaste version och beskrivning.
  3. Klicka på Installera. Paketet hamnar i tabellen Installerade paket, med sin version.
  4. Importera som vanligt i koden: import openpyxl.

Beroendehanteraren — Python-miljö, lägga till paket från PyPI och listan över installerade.
Beroendehanteraren — Python-miljö, lägga till paket från PyPI och listan över installerade.

Raden Python-miljö: överst i dialogrutan berättar hur skriptets miljö mår:

Status Betyder
inte skapad ännu (skapas vid första installationen eller körningen) Ännu har inget paket installerats och skriptet har inte körts.
redo Miljön finns och går att använda — Python-versionen visas bredvid.
skadad Något har förstört miljön (t.ex.: en uppdatering på servern). Använd Bygg om venv.

Tre gester till i samma dialogruta:

  • Installera om — visas i stället för Installera när paketet redan finns där; tvingar fram en ominstallation.
  • Avinstallera — på det installerade paketets rad. Skriptets import av det paketet börjar misslyckas tills det installeras om.
  • Bygg om venv — tar bort och skapar hela miljön på nytt, och installerar om alla paket i listan. Praktiskt efter en Python-uppdatering på servern.

Nota

Miljön byggs om av sig själv utifrån paketlistan så fort det behövs — listan är sanningen, miljön härleds ur den. Paketen visas också under raden Beroenden i trädet, vart och ett med sin version.

Skript som beroenden

Utöver paket kan ett skript återanvända ett annat skript — i den här appen eller i en annan som du har tillgång till. Det refererade skriptets filer blir tillgängliga i en mapp med det alias du väljer, synkroniserad före varje körning: du rättar originalskriptet, och den som beror på det använder från och med då den rättade versionen.

  1. Öppna beroendehanteraren (skiftnyckeln på raden Beroenden).
  2. I avsnittet Skript som beroenden: välj App, välj Skript, och ge det ett Alias (import) — t.ex.: consolidado. Aliaset måste vara en giltig Python-identifierare.
  3. Klicka på Lägg till.
  4. Importera via aliasets moduler i koden:
from consolidado.main import main as consolidar


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

Regler som plattformen kräver när du lägger till:

  • Bara skript med samma runtime och från appar du har tillgång till visas.
  • Ett skript kan inte bero på sig självt.
  • Aliaset får inte upprepas eller sammanfalla med en fil eller mapp som redan finns i skriptets mapp.

Atenção

Det refererade skriptets pip-paket följer inte med. Om dess kod importerar requests, installera requests i det här skriptet också. Det refererade skriptets version visas i trädet som app/skript@version — det är den Version som angetts under dess Skriptets inställningar.

För att ta bort använder du × på beroendets rad (i trädet eller i hanteraren). Aliasets mapp försvinner från disken och de import som använde den misslyckas vid nästa körning.

Vanliga frågor

Jag installerade ett paket och import misslyckas fortfarande. Kontrollera modulens exakta namn — paketet Pillow importeras till exempel som PIL. Tabellen Installerade paket visar paketets namn; modulens namn står i dess dokumentation.

Varför kan jag inte ta bort requirements.txt? Det är en av de tre skyddade filerna — det är skriptets paketlista, som underhålls av beroendepanelen. För att ta bort ett paket använder du Avinstallera i beroendehanteraren, inte filen.

En kollega ändrade skriptet jag beror på. När fångar mitt upp ändringen? Vid nästa körning: aliasets mapp synkroniseras före varje körning av ditt skript.