Feilsøking¶
Redigererens diagnostikklogg bærer hver relevante linje. På Windows ligger den i
%LOCALAPPDATA%/MTE/log/. Se på den nyeste filen etter at du har startet redigereren.
«Python plugins disabled»¶
Fire utgaver; den nøyaktige meldingen forteller deg hvilken.
PluginHost: MTE_PYTHON is not set; falling back to PATH.¶
Nøytral — verten holder på å lete etter Python i PATH. Det er greit med mindre det følger
«no Python interpreter found» etter.
PluginHost: MTE_PYTHON path '<value>' does not exist.¶
Du har satt MTE_PYTHON til en sti med et mappeskilletegn, men filen på den stien finnes
ikke. Løsning: pek på den riktige python.exe.
PluginHost: MTE_PYTHON='<name>' not found on PATH.¶
Du har satt MTE_PYTHON til et bart navn (uten skilletegn), men det navnet ligger ikke i
PATH. Løsning: enten legg mappen i PATH, eller bruk formen med hele stien ovenfor.
PluginHost: no Python interpreter found (…); Python plugins disabled.¶
Verken MTE_PYTHON eller noen av plattformens vanlige navn (py.exe, python.exe,
python3.exe på Windows; python3 på macOS og Linux) ligger i PATH. Installer Python
3.9+, og legg den enten i PATH eller sett MTE_PYTHON.
Se hva PATH ser akkurat nå, fra det samme skallet du startet redigereren fra:
(Get-Command py.exe -ErrorAction SilentlyContinue).Source
(Get-Command python.exe -ErrorAction SilentlyContinue).Source
«python worker script … not found»¶
Redigereren noterer:
Arbeiderens vertsskript (mte_python_host.py) ligger ikke ved siden av programfilen. Det
skjer når man kjører et redigererbygg der POST_BUILD-steget som klargjør Python/, ble
hoppet over. Bygg på nytt:
Bekreft at filen finnes etter bygget:
Programtillegget er listet, men ikke lastet inn¶
Åpne programtilleggssiden (Innstillinger → Programtillegg). Vanlige årsaker:
| Symptom | Linje i loggen | Årsak |
|---|---|---|
Et merke om uoverensstemmende apiVersion ved siden av navnet |
PythonPluginBackend: not loading '…': apiVersion does not match host 1. |
plugin.json-en din erklærer en annen apiVersion enn den redigereren som kjører, støtter. |
| Programtillegget ser nedtonet ut | PythonPluginBackend: '…' is disabled; listed but not loaded. |
Noen har slått det av på programtilleggssiden. Slå det på igjen, og start på nytt. |
| Mangler helt | PythonPluginBackend: skipping '…': module '…/main.py' does not declare a top-level 'def register(...)'. |
Den statiske kontrollen avviste modulet ditt. Flytt register opp på øverste nivå (kolonne 0). |
| Mangler helt | PythonPluginBackend: skipping '…': module file '…' is missing or unreadable. |
plugin.json.module er "main", men det finnes ingen main.py ved siden av. |
| Mangler helt | PythonPluginBackend: skipping '…': plugin.json missing required field 'id'. |
Legg til id. |
Kommandoen utløses ikke¶
Du klikket på menyposten eller trykket på hurtigtasten, men ingenting skjedde.
- Se etter
[python:<your.id>] …-linjer fractx.log.info(...). Mangler de, nådde tilbakekallet aldri fram til arbeideren. - Se etter
[worker stderr] …-linjer. Unntak inne i tilbakekallet ditt lander der. - Bekreft at kommando-id-en i
add_item-kallet ditt passer ordrett tilcommand(id=...)— tekststrenger sammenlignes nøyaktig.
Feil om at arbeideren døde¶
Verten noterer:
Python-underprosessen tok slutt. Se over den linjen etter stderr fra arbeideren — Python
skriver kallstakspor til stderr, og verten sender dem videre som [worker stderr] …. Et
krasj svarer nesten alltid til et unntak som ikke ble fanget, i register() eller i et
tilbakekall som gikk rekursivt inn i Pythons C-API.
Kom videre ved å rette koden og starte redigereren på nytt. Verten starter ikke av seg selv en arbeider som har krasjet.
Oppsettet av det virtuelle miljøet mislyktes (programtillegget er listet, men ikke lastet inn)¶
Et programtillegg som erklærer pyRequires, får satt opp et virtuelt miljø ved sin første
oppstart. Når det går galt, bærer loggen grunnen:
PluginHost: 'org.example.x' needs a venv (no venv provisioned yet).
PythonRuntime: provisioning venv at '...' (1 requirement(s)); ...
PluginHost: venv provisioning for 'org.example.x' failed: pip install
failed: ... No matching distribution found for no-such-package ...
Vanlige årsaker: intet nettverk ved første oppstart, et feilstavet krav, eller en pakke uten
et hjul for brukerens Python-versjon. Rett årsaken, og start på nytt — oppsettet prøves
igjen ved hver oppstart inntil det lykkes (det virtuelle miljøet stemples først som ferdig
til slutt). Vil du tvinge fram en ren gjenoppbygging, så slett
<AppLocalData>/PluginVenv/<plugin-id>/. Maskiner uten nett kan i stedet levere et
ferdigbygget venv/ inne i pakken — se
Pakking.
Installasjonsprogrammet avviste .mteplugin-en min¶
Hver avvisning kommer med en bestemt melding i et vindu; de vanlige er:
| Meldingen sier … | Løsning |
|---|---|
mangler det påkrevde feltet 'module' |
Legg til "module": "main" i plugin.json. |
| intet Python-modul (.py-fil) | Arkivet har slett ingen .py — pakket du den riktige mappen? |
inneholder ikke det erklærte Python-modulet 'X.py' |
module i plugin.json passer ikke til filnavnet i arkivet. |
erklærer ikke en def register(...) på øverste nivå |
Samme regel som ved oppdagelsen: def register( må begynne i kolonne 0 i <module>.py. |
| retter seg mot API-versjon N | Bygg på nytt mot den gjeldende apiVersion (se plugin.json). |
| utrygg sti / for stor / for mange filer | Arkivet utløste en sikkerhetssperre — pakk det helt alminnelig på nytt (ingen ..-poster, under 256 MiB utpakket). |
Pakken kontrolleres mot en midlertidig kopi, så en avvist installasjon rører aldri et programtillegg som alt finnes.
Det blir ikke skrevet noe i loggen i det hele tatt¶
Bekreft at behandleren din faktisk er satt opp. register(ctx) kjører nøyaktig én gang
per programtillegg per oppstart av redigereren. Er register ikke definert på modulets
øverste nivå, avviser den statiske kontrollen programtillegget før det i det hele tatt
lastes inn (se «Programtillegget er listet, men ikke lastet inn» ovenfor).
Legg en oppstartslinje til i register-en din:
Ser du ikke den i loggen, kjører ikke arbeideren register-en din — se i de tidligere
loggene etter grunnen.
Hvor du kan lete videre¶
- Loggen fra redigererens side:
%LOCALAPPDATA%/MTE/log/… - Arbeiderens stderr: samme logg, merket
[worker stderr] - Dokumentasjon:
ctx-API-et, Hendelser,plugin.json - Designnotater:
PYTHON_PLUGIN_ARCHITECTURE.md(arkivets rot)