我已经用 Python.Net 玩了一个星期,但是我找不到任何示例代码来以嵌入式方式使用 Python.Net,尽管 Python.Net 源有几个嵌入式测试。我从以前的电子邮件列表 (Python.Net) 中搜索了许多线程,结果不一致且毫无头绪。
我正在尝试做的是在通过 Python.Net 从 python 提示符执行 python 命令(例如“print 2+3”)后从 C# 代码获取结果(PyObject po),因为 IronPython 与我目前的模块不兼容使用。
当我从 nPython.exe 执行它时,它会按预期打印出 5。但是,当我从 C# 以嵌入式方式运行此代码时。它总是返回'null'。你能给我一些想法,我怎样才能得到执行结果?
谢谢你,火花。
环境: 1. Windows 2008 R2,.Net 4.0。在 VS2012 2 中使用 Python27、UCS2 编译 Python.Net。nPython.exe 可以正常运行“打印 2+3”
using NUnit.Framework;
using Python.Runtime;
namespace CommonTest
{
[TestFixture]
public class PythonTests
{
public PythonTests()
{
}
[Test]
public void CommonPythonTests()
{
PythonEngine.Initialize();
IntPtr gs = PythonEngine.AcquireLock();
PyObject po = PythonEngine.RunString("print 2+3");
PythonEngine.ReleaseLock(gs);
PythonEngine.Shutdown();
}
}
}