Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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-вбудовані пакети встановлюють пакети за допомогою pip
https://www.itsvse.com/thread-10941-1-1.html

Завантаження 64-бітного пакету для вбудови Python-3.13.2:Вхід за гіперпосиланням видно.

Створіть нову консоль .NET 8

Створіть нову посилання на консоль .NET 8 з таким посиланням:

Оскільки pythonnet використовуєBinaryFormatterклас, під час виконання буде кинуто наступний виняток:

Невирішений виняток. System.NotSupportedException: Серіалізація та десеріалізація BinaryFormatter вимкнені в цьому додатку. БачитиВхід за гіперпосиланням видно.Для отримання додаткової інформації.

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

Повна конфігурація виглядає так:

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

Float type у Python насправді є двоточним float (64 біти), що відповідає подвійному типу C#.

Виконуйте код Python безпосередньо

Для простого коду на Python, який можна виконувати безпосередньо, код виглядає так:



Виклик функції python

Код виглядає так:



Розгортання в середовище Linux для тестування

Доступні для нормальної роботи, тести такі:



Посилання:
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.




Попередній:Linux використовує pyenv для встановлення середовища Python
Наступний:Плагін допомоги розробці коду серії Angular 18 (Thirty-One) проти
 Орендодавець| Опубліковано 2025-2-11 16:08:17 |
Викликайте python-функцію з масивом списку (<клас 'list'>) як аргументом


Код виглядає так:


 Орендодавець| Опубліковано 2025-2-11 16:25:40 |
C# викликає функцію Python, щоб отримати повернене значення <клас 'tuple'> повертається

Код виглядає так:



 Орендодавець| Опубліковано 2025-2-24 09:27:40 |
CSnakes- Інструмент для вбудовування коду на Python у .NET-проєкти

Джерело:Вхід за гіперпосиланням видно.
Документації:Вхід за гіперпосиланням видно.
 Орендодавець| Опубліковано 2025-9-1 16:01:12 |
Компіляція у виконання байткоду

Посилання:Вхід за гіперпосиланням видно.
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com