Požadavky: Programování v Pythonu je dnes velmi populární, široce se používá v analýze dat a vědeckém výzkumu, velkých modelech, hlubokém učení atd., některé modelové algoritmy jsou psány v pythonu, je potřeba použít .NET pro spouštění python skriptů, předávání parametrů a získávání výsledků. Online řešení jsou: spouštění procesů, IronPython, pythonnet a nakonec pythonnet.
pythonnet-Python.NET
Python.NET je softwarový balíček, který umožňuje programátorům v Pythonu téměř bezproblémově integrovat .NET Universal Language Runtime (CLR) a poskytuje vývojářům .NET výkonné nástroje pro skriptování aplikací. Umožňuje interakci Python kódu s CLR a lze jej také použít k vkládání Pythonu do .NET aplikací.
Adresa:Přihlášení k hypertextovému odkazu je viditelné.
Připravte prostředí Pythonu
Tento článek používá python-3.13.2-embed-amd64 jako běžící prostředí, odkaz:
Python-3.13.2 embed balíček 64-bit ke stažení:Přihlášení k hypertextovému odkazu je viditelné.
Vytvořte novou .NET 8 konzoli
Vytvořte novou .NET 8 konzolovou referenci s následujícím odkazem:
Protože pythonnet použijeBinaryFormattertřída, během popravy bude vyhozena následující výjimka:
Pro vyřešení problému upravte uzel .csproj <PropertyGroup> a přidejte následující konfiguraci:
Kompletní konfigurace je následující:
Py.GIL() je důležitou funkcí v knihovně Python.NET pro získávání a uvolňování Global Interpreter Locks (GIL). GIL je mechanismus v interpreteru CPython, který zajišťuje, že v daném okamžiku vykonává pouze jedno vlákno Python bajtkód. To je důležité v prostředí s více vlákny, zvláště pokud jsou kód Pythonu a .NET smíchány.
Pythonův float typ je ve skutečnosti plovoucí formát s dvojitou přesností (64 bitů), což odpovídá dvojitému typu v C#.
Přímo spouštějte python kód
Pro jednoduchý python kód, který lze spustit přímo, je kód následující:
Zavolejte python funkci
Kód je následující:
Nasazení do prostředí Linux pro testování
Testy jsou dostupné pro běžný provoz a jsou následující:
Odkaz:
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné. |