PowerShell Universal har historisk været en platform kun til PowerShell. Med udgivelsen af PowerShell Universal 4.2 tilføjer vi muligheden for at køre Python-scripts. Indlægget gennemgår, hvordan du gør det med et nightly build af 4.2.
Funktionaliteten udgives i november som en del af PowerShell Universal 4.2.
Minimale miljøer
PowerShell Universal 4.2 introducerer en ny indstilling for miljø, der kaldes Minimal. Minimale miljøer forsøger ikke at indlæse Universal-assemblies eller etablere en gRPC-forbindelse mellem underprocessen og den overordnede proces. Det lader PowerShell Universal køre i miljøer, der ikke er baseret på .NET. Minimale miljøer udnytter STDOUT og STDERR til at indsamle output fra den proces, der startes i miljøet. Det kan også være en hjælp til PowerShell-scripts, der indlæser moduler, som er i konflikt med Universal-assemblies.
Python-miljø
For at konfigurere et Python-miljø opretter du først et nyt miljø og sætter stien til python.exe. Det kræver, at Python er installeret på maskinen. Dernæst sætter du kommandolinjen til {scriptPath}. Værdien udvides til stien til det script, der køres, og sendes med ved kørsel.
Det var teknisk muligt at køre Python-scripts i tidligere versioner af PowerShell Universal, men den nye miljøtype kører Python direkte i stedet for at starte en mellemliggende PowerShell-proces, der derefter kører Python. Det giver en meget hurtigere opstartstid for jobbene.
Kørsel af Python-scripts
Opret derefter et script med filendelsen .py. Vi har opdateret administrationskonsollen, så den korrekt genkender Python-scripts og fremhæver syntaksen rigtigt. Klik til sidst på Run, og vælg dit Python-miljø.
Hvad er det næste for minimale miljøer og Python-integration?
Minimale miljøer lader dig køre den proces, du vil, fra scriptkørselsmotoren og sende scriptstien med som argument. Fordi vi erstatter makroen {scriptPath}, kan du også medtage andre argumenter. Det kan være nyttigt til andre scriptsprog, for eksempel bash på Linux. Minimale miljøer virker ikke med API’er, Apps eller Terminals. De funktioner kræver en gRPC-implementering, som ikke findes i de andre sprog og motorer. Vi håber at kunne offentliggøre vores gRPC-protofiler i tidsrummet for v5-udgivelsen. Det ville gøre det muligt at generere klienter, der kan køre i ethvert sprog, hvor gRPC og protobuf understøttes.
Klar til at bygge? Download PowerShell Universal.

Adam Driscoll