Wymagania: Programowanie w Pythonie jest obecnie bardzo popularne, szeroko stosowane w analizie danych i badaniach naukowych, dużych modelach, deep learningu itd., niektóre algorytmy modeli są pisane w Pythonie, wymagają użycia .NET do wykonywania skryptów pythona, przekazywania parametrów i uzyskiwania wyników. Rozwiązania online to: wykonywanie procesów, IronPython, pythonnet i wreszcie pythonnet.
pythonnet-Python.NET
Python.NET to pakiet oprogramowania, który umożliwia programistom Pythona niemal bezproblemową integrację .NET Universal Language Runtime (CLR) oraz zapewnia programistom .NET zaawansowane narzędzia do skryptowania aplikacji. Pozwala kodowi Pythona na interakcję z CLR i może być również używany do osadzania Pythona w aplikacjach .NET.
Adres:Logowanie do linku jest widoczne.
Przygotuj środowisko Pythona
W tym artykule używa się python-3.13.2-embed-amd64 jako środowiska uruchomieniowego, źródło:
Pakiet osadzania Python-3.13.2 do pobrania 64-bit:Logowanie do linku jest widoczne.
Stwórz nową konsolę .NET 8
Stwórz nową referencję konsoli .NET 8 z następującym odniesieniem:
Ponieważ pythonnet będzie używałBinaryFormatterpodczas wykonywania wyjątku zostanie rzucony następujący wyjątek:
Wyjątek nieobsługiwany. System.NotSupportedException: Serializacja i deserializacja BinaryFormatter są wyłączone w tej aplikacji. WidziećLogowanie do linku jest widoczne.Więcej informacji. Aby rozwiązać problem, edytuj węzeł .csproj <PropertyGroup> i dodaj następującą konfigurację:
Pełna konfiguracja wygląda następująco:
Py.GIL() jest ważną funkcją w bibliotece Python.NET do pozyskiwania i uwalniania Global Interpreter Locks (GIL). GIL to mechanizm w interpreterze CPython, który zapewnia, że tylko jeden wątek wykonuje bajtkod Pythona w danym momencie. Jest to ważne w środowisku wielowątkowym, zwłaszcza jeśli kod Pythona i .NET są mieszane.
Typ float w Pythonie to w rzeczywistości float o podwójnej precyzji (64 bity), odpowiadający podwójnemu typowi w C#.
Wykonaj kod Pythona bezpośrednio
Dla prostego kodu pythona, który można wykonać bezpośrednio, kod wygląda następująco:
Wywołaj funkcję w Pythonie
Kod jest następujący:
Wdrożenie w środowisku Linux do testowania
Dostępne do normalnej pracy, testy są następujące:
Odniesienie:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne. |