Если вы не хотите использовать такие решения, как Python .NET или IronPython, можно реализовать оболочку C ++ / CLI и использовать ctypes Pythons для ее загрузки. Например:
Библиотека C ++ / CLI CallCSharp:
extern "C" {
__declspec(dllexport) void foo()
{
// here you could use managed and unmanaged code
Console.WriteLine("Hello, C# world...");
}
Скрипт Python:
from ctypes import cdll
lib = cdll.LoadLibrary("./CallCSharp.dll")
lib.foo()
Я настоятельно рекомендую прочитать этот блог: http://pragmateek.com/if-your-plumbing-doesnt-work-youre-just-not-using-enough-pipes/#more-1745
Он также обрабатывает проблему, которая возникает, когда оболочка C ++ / CLI вызывает код, находящийся в другой сборке (вы получите что-то вроде ошибки WindowsError: [Ошибка -532462766] Ошибка Windows 0xE0434352 из сценария Python).