我一直在研究一种简单的方法来启动Python(而非IronPython)脚本并传递参数,如Array,String,Int,Decimal,然后从Python脚本中检索输出(如数组)。
所有研究都指向非常复杂的方法,这些方法不可靠或者IronPython是有限的。
如果VBA可以通过xlwings(非常好)做到这一点,为什么在Visual Studio中不能使用C#?
任何建议,链接或示例都会非常有用。谢谢
答案 0 :(得分:0)
正如@denfromufa所述,Pythonnet是必经之路。这是启动模块并将对象从C#传递到模块的方法。 注意:
numpy
,但您可以将其替换为任何其他模块,甚至是自定义模块。array
对象为例,但对于string
,double
,int
等,它是完全相同的。PyScope
在Python引擎中执行所有操作。如果您需要C#端的对象,则可以改用dynamic
类型,并使用Py.Import()
导入模块。using Python.Runtime;
double[] a = [2.1, 3.5, 5.4];
using (Py.GIL())
{
using (PyScope scope = Py.CreateScope())
{
scope.Exec("import numpy as np");
scope.Set("a", a.ToPython())
scope.Exec("b = np.array(a)");
}
}