Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 1683|Svare: 4

[Kilde] .NET/C# kaller Python-miljøet for å kjøre .py skript

[Kopier lenke]
Publisert 2025-2-11 16:01:21 | | | |
Krav: Python-programmering er veldig populært i dag, mye brukt i dataanalyse og vitenskapelig forskning, store modeller, dyp læring osv., noen modellalgoritmer er skrevet i Python, krever at man bruker .NET for å kjøre python-skript, sende parametere og oppnå resultater. De nettbaserte løsningene er: prosessutførelse, IronPython, pythonnet, og til slutt pythonnet.

pythonnet-Python.NET

Python.NET er en programvarepakke som gjør det mulig for Python-programmerere å integrere .NET Universal Language Runtime (CLR) nesten sømløst, og gir .NET-utviklere kraftige applikasjonsskriptverktøy. Det gjør at Python-kode kan samhandle med CLR og kan også brukes til å integrere Python i .NET-applikasjoner.

Adresse:Innloggingen med hyperkoblingen er synlig.

Forbered Python-miljøet

Denne artikkelen bruker python-3.13.2-embed-amd64 som kjøremiljø, referanse:

Python-embed-pakker installerer pakker ved hjelp av pip
https://www.itsvse.com/thread-10941-1-1.html

Python-3.13.2 innebygd pakke 64-bits nedlasting:Innloggingen med hyperkoblingen er synlig.

Lag en ny .NET 8-konsoll

Opprett en ny .NET 8-konsollreferanse med følgende referanse:

Siden pythonnet vil brukeBinærFormatterklasse, vil følgende unntak bli kastet under utførelsen:

Unntak for ubehandlet. System.NotSupportedException: BinærFormatter-serialisering og deserialisering er deaktivert i denne applikasjonen. SeInnloggingen med hyperkoblingen er synlig.For mer informasjon.

For å løse problemet, rediger .csproj-noden <PropertyGroup> og legg til følgende konfigurasjon:

Den komplette konfigurasjonen er som følger:

Py.GIL() er en viktig funksjon i Python.NET-biblioteket for å skaffe og frigjøre Global Interpreter Locks (GILs). GIL er en mekanisme i CPython-tolken som sikrer at kun én tråd kjører Python-bytekode om gangen. Dette er viktig i et flertrådet miljø, spesielt hvis Python og .NET-kode blandes sammen.

Pythons float-type er faktisk en double-precision float (64 biter), tilsvarende C#s double type.

Kjør python-kode direkte

For enkel python-kode, som kan kjøres direkte, er koden som følger:



Kall en python-funksjon

Koden er som følger:



Distribuer til Linux-miljøet for testing

Tilgjengelige for normal drift, er testene som følger:



Referanse:
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.




Foregående:Linux bruker pyenv for å installere Python-miljøet
Neste:Angular 18-serien (trettien) VS kodeutviklingshjelpe-plugin
 Vert| Publisert 2025-2-11 16:08:17 |
Kall en python-funksjon med et listearray (<klasse 'liste'>) som et argument


Koden er som følger:


 Vert| Publisert 2025-2-11 16:25:40 |
C# kaller en python-funksjon for å hente tuple-<klassen 'tuple'> returverdi

Koden er som følger:



 Vert| Publisert 24.02.2025 09:27:40 |
CSnakes- Et verktøy for å integrere Python-kode i .NET-prosjekter

Kilde:Innloggingen med hyperkoblingen er synlig.
Dokumentasjon:Innloggingen med hyperkoblingen er synlig.
 Vert| Publisert 2025-9-1 16:01:12 |
Kompil til bytekodeutførelse

Referanse:Innloggingen med hyperkoblingen er synlig.
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com