Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 1683|Odpoveď: 4

[Zdroj] .NET/C# volá prostredie Python na vykonávanie .py skriptov

[Kopírovať odkaz]
Zverejnené 2025-2-11 o 16:01:21 | | | |
Požiadavky: Programovanie v Pythone je dnes veľmi populárne, široko sa používa v analýze dát a vedeckom výskume, veľkých modeloch, hlbokom učení a podobne, niektoré modelové algoritmy sú napísané v pythone, je potrebné použiť .NET na vykonávanie python skriptov, prechod parametrov a získavanie výsledkov. Online riešenia sú: vykonávanie procesov, IronPython, pythonnet a nakoniec pythonnet.

pythonnet-Python.NET

Python.NET je softvérový balík, ktorý umožňuje programátorom v Pythone takmer bezproblémovo integrovať .NET Universal Language Runtime (CLR) a poskytuje vývojárom .NET výkonné nástroje na skriptovanie aplikácií. Umožňuje Python kódu interagovať s CLR a dá sa použiť aj na vloženie Pythonu do .NET aplikácií.

Adresa:Prihlásenie na hypertextový odkaz je viditeľné.

Pripravte Python prostredie

Tento článok používa python-3.13.2-embed-amd64 ako bežiace prostredie, referencia:

Python embedové balíky inštalujú balíky pomocou pip
https://www.itsvse.com/thread-10941-1-1.html

Python-3.13.2 embed balík 64-bit na stiahnutie:Prihlásenie na hypertextový odkaz je viditeľné.

Vytvorte novú .NET 8 konzolu

Vytvorte novú .NET 8 konzolovú referenciu s nasledujúcou referenciou:

Keďže pythonnet bude používaťBinaryFormattertrieda, počas vykonávania bude vyhodená nasledujúca výnimka:

Neriešená výnimka. System.NotSupportedException: BinaryFormatter serializácia a deserializácia sú v tejto aplikácii deaktivované. VidieťPrihlásenie na hypertextový odkaz je viditeľné.Pre viac informácií.

Na vyriešenie problému upravte uzol .csproj <PropertyGroup> a pridajte nasledujúcu konfiguráciu:

Kompletná konfigurácia je nasledovná:

Py.GIL() je dôležitou funkciou v Python.NET knižnici na získavanie a uvoľňovanie Global Interpreter Locks (GIL). GIL je mechanizmus v interpreti CPython, ktorý zabezpečuje, že v jednom okamihu vykonáva iba jedno vlákno Python bajtkód. To je dôležité v prostredí s viacvláknami, najmä ak sú Python a .NET kód zmiešané.

Float typ v Pythone je v skutočnosti float s dvojitou presnosťou (64 bitov), čo zodpovedá dvojitému typu v C#.

Vykonávajte priamo python kód

Pre jednoduchý python kód, ktorý je možné vykonať priamo, je kód nasledovný:



Zavolajte python funkciu

Kód je nasledovný:



Nasadenie do prostredia Linux na testovanie

Testy sú dostupné pre bežnú prevádzku a sú nasledovné:



Referencia:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Linux používa pyenv na inštaláciu prostredia Python
Budúci:Angular 18 Series (Thirty-One) VS plugin na pomoc pri vývoji kódu
 Prenajímateľ| Zverejnené 11.2.2025 16:08:17 |
Zavolajte python funkciu s listovým poľom (<class 'list'>) ako argumentom


Kód je nasledovný:


 Prenajímateľ| Zverejnené 2025-2-11 o 16:25:40 |
C# volá python funkciu na získanie hodnoty n-tice <triedy 'tica'> vráti

Kód je nasledovný:



 Prenajímateľ| Zverejnené 2025-2-24 09:27:40 |
CSnakes- Nástroj na vkladanie Python kódu do .NET projektov

Zdroj:Prihlásenie na hypertextový odkaz je viditeľné.
Dokumentácia:Prihlásenie na hypertextový odkaz je viditeľné.
 Prenajímateľ| Zverejnené 1. júna 2025 o 16:01:12 |
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com