Требования: Программирование на 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 в качестве рабочей среды, ссылка:
Загрузка 64-битного пакета Python-3.13.2:Вход по гиперссылке виден.
Создайте новую консоль .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 для тестирования
Доступны для нормальной эксплуатации тесты следующие:
Ссылка:
Вход по гиперссылке виден.
Вход по гиперссылке виден.
Вход по гиперссылке виден. |