Информация об изменениях

Сообщение CPython скриптование управляемых приложений. от 11.12.2020 14:11

Изменено 11.12.2020 14:41 Эйнсток Файр

CPython скриптование управляемых приложений.
Видили ли вы где-нибудь пример того, чтобы приложение было написано на C#,
а к нему предлагалось скриптование на Python, причём нативным питоном из операционной системы,
без всяких там IronPython.
python3 interop c# безумие
CPython скриптование управляемых приложений.
Видили ли вы где-нибудь пример того, чтобы приложение было написано на C#,
а к нему предлагалось скриптование на Python, причём нативным питоном из операционной системы,
без всяких там IronPython.

1) .Net-приложение это процесс, точнее код, выполняемый в процессе, созданном операционной системой.
Причём это управляемый код. То есть рантайм среды выполнения даёт гарантии по поводу работы кода в пределах процесса.
2) если хочется запустить питон (то есть неуправляемый код интерпретатора CPython,
то лучше бы это делать в соседнем процессе.
3) надо обеспечить перехват вывода на консоль,
а так же подачу ввода на стандартный ввод.
4) надо сделать окошечко, где пользователь будет видет консоль интерпретатора python

А как сам питон будет общаться с .NET-приложением?
Ну, там будет враппер (написанный на python) к C-библиотеке,
которая будет через любой из механизмов взаимодействия между процессами
общаться с .Net-приложением.

Где питоновые библиотеки взять? Они тут:

https://pypi.org/
Python Package Index
a repository of software for the Python programming language.

И вот есть какая-то на 80% написанная на C# (т.е. C# будет загружен и во второй процесс с питоном,
что не очень хорошо, но можно пережить и воспользоваться Remoting-ом, например).

pythonnet offers a simple way to call C# from a Python program.
https://github.com/pythonnet/pythonnet

Есть ли другие решения?
c# interop безумие python3