Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 1683|Odpowiedź: 4

[Źródło] .NET/C# wywołuje środowisko Python do wykonania .py skryptów

[Skopiuj link]
Opublikowano 2025-2-11 o 16:01:21 | | | |
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:

Pakiety osadzania w Pythonie instalują pakiety za pomocą
https://www.itsvse.com/thread-10941-1-1.html

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.




Poprzedni:Linux używa pyenv do instalacji środowiska Python
Następny:Wtyczka Angular 18 Series (Thirty-One) VS VS Pomocy w Rozwoju Kodu
 Ziemianin| Opublikowano 2025-2-11 16:08:17 |
Wywołaj funkcję pythona z tablicą list (<class 'list'>) jako argumentem


Kod jest następujący:


 Ziemianin| Opublikowano 2025-2-11 o 16:25:40 |
C# wywołuje funkcję pythona, aby uzyskać wartość zwrotną krotki <klasa 'krotka'>

Kod jest następujący:



 Ziemianin| Opublikowano 2025-2-24 09:27:40 |
CSnakes- Narzędzie do osadzania kodu Pythona w projektach .NET

Źródło:Logowanie do linku jest widoczne.
Dokumentacja:Logowanie do linku jest widoczne.
 Ziemianin| Opublikowano 1 września 2025 o 16:01:12 |
Kompilacja do wykonania bajtkodu

Odniesienie:Logowanie do linku jest widoczne.
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com