Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 1683|Отговор: 4

[Източник] .NET/C# извиква Python средата, за да изпълни .py скриптове

[Копирай линк]
Публикувано на 2025-2-11 16:01:21 | | | |
Изисквания: Python програмирането е много популярно в наши дни, широко се използва в анализ на данни и научни изследвания, големи модели, дълбоко обучение и др., някои моделни алгоритми са написани на python, трябва да използват .NET за изпълнение на python скриптове, предаване на параметри и получаване на резултати. Онлайн решенията са: изпълнение на процеси, IronPython, pythonnet и накрая pythonnet.

pythonnet-Python.NET

Python.NET е софтуерен пакет, който позволява на програмистите на Python да интегрират .NET Universal Language Runtime (CLR) почти безпроблемно и предоставя на .NET разработчиците мощни инструменти за скриптиране на приложения. Той позволява на Python код да взаимодейства с CLR и може да се използва и за вграждане на Python в .NET приложения.

Адрес:Входът към хиперлинк е видим.

Подгответе Python средата

Тази статия използва python-3.13.2-embed-amd64 като работеща среда, референция:

Python embed пакети инсталират пакети чрез pip
https://www.itsvse.com/thread-10941-1-1.html

Python-3.13.2 embed пакет 64-битово изтегляне:Входът към хиперлинк е видим.

Създайте нова .NET 8 конзола

Създайте нова референция за .NET 8 конзола със следния референт:

Тъй като pythonnet ще използваBinaryFormatterклас, следното изключение ще бъде хвърлено по време на изпълнението:

Необработено изключение. System.NotSupportedException: BinaryFormatter сериализацията и десериализацията са изключени в това приложение. ВиждамВходът към хиперлинк е видим.за повече информация.

За да решите проблема, редактирайте .csproj <PropertyGroup> възела и добавете следната конфигурация:

Пълната конфигурация е следната:

Py.GIL() е важна функция в библиотеката Python.NET за получаване и освобождаване на глобални заключвания на интерпретатори (GIL). GIL е механизъм в интерпретатора CPython, който гарантира, че само една нишка изпълнява Python байткод по всяко време. Това е важно в многонишкова среда, особено ако Python и .NET кодът са смесени.

Float типът на Python всъщност е с двойна прецизност float (64 бита), съответстващ на двойния тип на C#.

Изпълнение на Python код директно

За прост python код, който може да се изпълнява директно, кодът е следният:



Извикай python функция

Кодът е следният:



Разполагане в Linux среда за тестване

Достъпни за нормална работа, тестовете са следните:



Препратка:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.




Предишен:Linux използва pyenv за инсталиране на Python средата
Следващ:Angular 18 серия (Тридесет и едно) срещу плъгин за помощ при разработка на код
 Хазяин| Публикувано на 2025-2-11 16:08:17 |
Извикай python функция с масив от списъци (<клас 'list'>) като аргумент


Кодът е следният:


 Хазяин| Публикувано на 2025-2-11 16:25:40 |
C# извиква python функция, за да получи стойността <клас 'tuple'> връщане

Кодът е следният:



 Хазяин| Публикувано на 24.02.2025 09:27:40 |
CSnakes- Инструмент за вграждане на Python код в .NET проекти

Източник:Входът към хиперлинк е видим.
Документация:Входът към хиперлинк е видим.
 Хазяин| Публикувано на 2025-9-1 16:01:12 |
Компилиране в изпълнение на байткод

Препратка:Входът към хиперлинк е видим.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com