Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 1683|Svar: 4

[Kilde] .NET/C# kalder Python-miljøet for at køre .py scripts

[Kopier link]
Opslået den 2025-2-11 16:01:21 | | | |
Krav: Python-programmering er meget populært i dag, bredt anvendt i dataanalyse og videnskabelig forskning, store modeller, deep learning osv., nogle modelalgoritmer er skrevet i python, de skal bruge .NET til at køre python-scripts, overføre parametre og opnå resultater. De online løsninger er: procesudførelse, IronPython, pythonnet og endelig pythonnet.

pythonnet-Python.NET

Python.NET er en softwarepakke, der gør det muligt for Python-programmører at integrere .NET Universal Language Runtime (CLR) næsten problemfrit og giver .NET-udviklere kraftfulde applikationsscriptingværktøjer. Det gør det muligt for Python-kode at interagere med CLR og kan også bruges til at indlejre Python i .NET-applikationer.

Adresse:Hyperlink-login er synlig.

Forbered Python-miljøet

Denne artikel bruger python-3.13.2-embed-amd64 som kørende miljø, reference:

Python-embed-pakker installerer pakker ved hjælp af pip
https://www.itsvse.com/thread-10941-1-1.html

Python-3.13.2 indlejringspakke 64-bit download:Hyperlink-login er synlig.

Opret en ny .NET 8-konsol

Opret en ny .NET 8-konsolreference med følgende reference:

Da pythonnet vil brugeBinærFormatterenklasse vil følgende undtagelse blive kastet under udførelsen:

Ubehandlet undtagelse. System.NotSupportedException: Binær Formatter-serialisering og deserialisering er deaktiveret i denne applikation. SeHyperlink-login er synlig.For mere information.

For at løse problemet redigerer du .csproj-noden <PropertyGroup> og tilføjer følgende konfiguration:

Den komplette konfiguration er som følger:

Py.GIL() er en vigtig funktion i Python.NET-biblioteket til at opnå og frigive Global Interpreter Locks (GILs). GIL er en mekanisme i CPython-fortolkeren, der sikrer, at kun én tråd eksekverer Python-bytekode ad gangen. Dette er vigtigt i et multitrådet miljø, især hvis Python og .NET-kode blandes sammen.

Pythons float-type er faktisk en double-precision float (64 bit), svarende til C#'s dobbelttype.

Udfør python-kode direkte

For simpel python-kode, som kan udføres direkte, er koden som følger:



Kald en python-funktion

Koden er som følger:



Udrul til Linux-miljøet til test

Til normal drift er testene som følger:



Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.




Tidligere:Linux bruger pyenv til at installere Python-miljøet
Næste:Angular 18-serien (Thirty-One) VS Code Development Assistance Plugin
 Udlejer| Opslået den 2025-2-11 16:08:17 |
Kald en python-funktion med et listearray (<klasse 'liste'>) som argument


Koden er som følger:


 Udlejer| Opslået den 2025-2-11 16:25:40 |
C# kalder en pythonfunktion for at få tuple <klassen 'tuple'> returnværdien

Koden er som følger:



 Udlejer| Opslået den 24-2-2025 09:27:40 |
CSnakes- Et værktøj til at indlejre Python-kode i .NET-projekter

Kilde:Hyperlink-login er synlig.
Dokumentation:Hyperlink-login er synlig.
 Udlejer| Opslået den 1-9-2025 16:01:12 |
Kompil til bytekode-eksekvering

Henvisning:Hyperlink-login er synlig.
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com