Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 1683|Antwoord: 4

[Bron] .NET/C# roept de Python-omgeving aan om .py scripts uit te voeren

[Link kopiëren]
Geplaatst op 2025-2-11 16:01:21 | | | |
Vereisten: Python-programmeren is tegenwoordig erg populair, veel gebruikt in data-analyse en wetenschappelijk onderzoek, grote modellen, deep learning, enzovoort; sommige modelalgoritmen zijn in Python geschreven, moeten .NET gebruiken om python-scripts uit te voeren, parameters door te geven en resultaten te verkrijgen. De online oplossingen zijn: procesuitvoering, IronPython, pythonnet en tenslotte pythonnet.

pythonnet-Python.NET

Python.NET is een softwarepakket dat Python-programmeurs in staat stelt de .NET Universal Language Runtime (CLR) vrijwel naadloos te integreren en .NET-ontwikkelaars krachtige applicatiescriptingtools biedt. Het maakt het mogelijk dat Python-code met de CLR kan interageren en ook gebruikt worden om Python in .NET-applicaties te integreren.

Adres:De hyperlink-login is zichtbaar.

Bereid de Python-omgeving voor

Dit artikel gebruikt python-3.13.2-embed-amd64 als de running environment, referentie:

Python-embed-pakketten installeren pakketten met pip
https://www.itsvse.com/thread-10941-1-1.html

Python-3.13.2 embed-pakket 64-bits download:De hyperlink-login is zichtbaar.

Maak een nieuwe .NET 8-console

Maak een nieuwe .NET 8-consolereferentie aan met de volgende referentie:

Omdat pythonnet zal gebruikenBinairFormatterklasse, wordt de volgende uitzondering gegooid tijdens de uitvoering:

Onbehandelde uitzondering. System.NotSupportedException: BinaryFormatter-serialisatie en deserialisatie zijn uitgeschakeld binnen deze applicatie. ZienDe hyperlink-login is zichtbaar.voor meer informatie.

Om het probleem op te lossen, bewerk je de .csproj-node <PropertyGroup> en voeg je de volgende configuratie toe:

De volledige configuratie is als volgt:

Py.GIL() is een belangrijke functie in de Python.NET bibliotheek voor het verkrijgen en vrijgeven van Global Interpreter Locks (GILs). GIL is een mechanisme in de CPython-interpreter dat ervoor zorgt dat slechts één thread tegelijk Python-bytecode uitvoert. Dit is belangrijk in een multithreaded omgeving, vooral als Python en .NET-code door elkaar worden gemengd.

Het float-type van Python is eigenlijk een double-precision float (64 bits), wat overeenkomt met het dubbele type van C#.

Voer Python-code direct uit

Voor eenvoudige pythoncode, die direct kan worden uitgevoerd, is de code als volgt:



Roep een pythonfunctie aan

De code is als volgt:



Deploy naar de Linux-omgeving voor testen

Beschikbaar voor normaal gebruik, zijn de tests als volgt:



Referentie:
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.




Vorig:Linux gebruikt pyenv om de Python-omgeving te installeren
Volgend:Angular 18 Serie (Eenendertig) VS Code Development Assistance Plugin
 Huisbaas| Geplaatst op 2025-2-11 16:08:17 |
Roep een pythonfunctie aan met een lijstarray (<klasse 'list'>) als argument


De code is als volgt:


 Huisbaas| Geplaatst op 2025-2-11 16:25:40 |
C# roept een pythonfunctie aan om de returnwaarde van de tuple <klasse 'tuple'> te krijgen

De code is als volgt:



 Huisbaas| Geplaatst op 24-2-2025 09:27:40 |
CSnakes- Een tool om Python-code in .NET-projecten in te sluiten

Bron:De hyperlink-login is zichtbaar.
Documentatie:De hyperlink-login is zichtbaar.
 Huisbaas| Geplaatst op 1 september 2025 16:01:12 |
Compileren in bytecode-uitvoering

Referentie:De hyperlink-login is zichtbaar.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com