Здравствуйте. Подскажите как вызвать функции(Python,Lua,Perl), используя стандартный интерпритатор для данного языка из C#.
Т.е есть Python скрипт, в котором реализована функция Foo , мне необходимо вызвать её из C#, использую интерпритатор Python.
Мне не нужны реализации под .Net, а хотелось бы узнать о механизмах взаимодействия.
Re: Взаимодействие C# со скриптовыми языками (Python, Lua,Pe
Здравствуйте, Poisent, Вы писали: P>Т.е есть Python скрипт, в котором реализована функция Foo , мне необходимо вызвать её из C#, использую интерпритатор Python.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, Poisent, Вы писали: P>>Т.е есть Python скрипт, в котором реализована функция Foo , мне необходимо вызвать её из C#, использую интерпритатор Python.
MC>Это точно умеет Python.NET
Мне не нужен Iron Python, или Python.Net.
Нужну выполнить мою функцию стандартным интерпритатором Python и вернуть результат в C#.
Re: Взаимодействие C# со скриптовыми языками (Python, Lua,Pe
Здравствуйте, Poisent, Вы писали:
P>Здравствуйте. Подскажите как вызвать функции(Python,Lua,Perl), используя стандартный интерпритатор для данного языка из C#. P>Т.е есть Python скрипт, в котором реализована функция Foo , мне необходимо вызвать её из C#, использую интерпритатор Python. P>Мне не нужны реализации под .Net, а хотелось бы узнать о механизмах взаимодействия.
C# ничего не знает о Python и Perl. Так?
Поэтому разумно будет предположить, что надо использовать какие-то стандартные средства. Так?
Какие у нас есть стандартные средства для взаимодействия с unmanaged кодом?
System.Diagnostics.Process и PInvoke (есть еще COM Interop, но он вероятно тут не подойдет).
Теперь осталось решить, как Python сможет опубликовать нужную функцию.
Здравствуйте, Poisent, Вы писали:
P>Мне не нужен Iron Python, или Python.Net. P>Нужну выполнить мою функцию стандартным интерпритатором Python и вернуть результат в C#.
Process.Start и на вход кидайте ему все что нужно выполнить. Результаты вытаскивать из Process.StandardOutput
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Взаимодействие C# со скриптовыми языками (Python, Lua
Здравствуйте, Poisent, Вы писали: P>Мне не нужен Iron Python, или Python.Net.
Вы вообще смотрели ссылку?
At a very high level, to embed Python in your application you will need to:
* Reference Python.Runtime.dll in your build environment
* Call PythonEngine.Intialize() to initialize Python
* Call PythonEngine.ImportModule(name) to import a module
The module you import can either start working with your managed app environment at the time its imported, or you can explicitly lookup and call objects in a module you import.
Python.NET — это по большому счету обертка для Python/C API. Этот самый Python/C API как раз позволяет решить Вашу задачу. В принципе, можно использовать и его, но Python.NET — удобнее.