在C#WebAPI WebService项目中执行Python代码

时间:2019-02-06 00:32:15

标签: c# python ironpython python.net

我正在使用ASP.NET WebAPI Web服务,我的要求之一是调用一个python脚本,该脚本输出JSON对象并将其作为Web服务响应发送。

我已经安装了IronPython 2.7.9 nuget软件包,并且我的计算机具有Python 3.6

我在项目中添加了IronPython nuget包,并尝试了链接https://gist.github.com/0x49D1/23196eb99b4c1f089b2033b6191e84e8中的代码

test.py

    import json
    data = {}
    data['1'] = 'value1'
    data['2'] = 'value2'
    json_data = json.dumps(data)
    print (json_data)

例外 IronPython.Runtime.Exceptions.ImportException {“没有名为json的模块”}

1 个答案:

答案 0 :(得分:0)

您应该使用Pythonnet和Python.Include from NuGet。 代码示例:

if (Python.Runtime.PythonEngine.IsInitialized == false) {
    Python.Runtime.PythonEngine.Initialize();
    Python.Runtime.PythonEngine.BeginAllowThreads();
}
using (Py.GIL()) {
    ///
    /// your code
    ///
    if (Python.Runtime.PythonEngine.IsInitialized == true) {
        Python.Runtime.PythonEngine.InitExt();
    }
}