在C#的WPF项目中,需要调用Python写的算法函数,这其中包含numpy等第三方库。
尝试过三种方式
1,通过IronPython包,来执行python。优点是可以精确到执行某个函数,可是缺点是包含numpy时,会报错。
2,通过C#调用cmd命令,去执行python代码。
3,将pyrhon打包成.exe文件,在c#中开启进程执行。
以上2,3方法,优点是当包含numpy等库时,也可以执行成功。缺点是,执行速度太慢了,不能精确的执行pyrhon中的某一个函数。而且,第2种,客户可以直接看到.py源码。第3种,打包.exe后,太大了,还会经常被360等杀毒软件删除。
怎么才能最佳方式处理这类问题?
期望目标,
1,pyrhon中可以包含numpy等第三方库。
2,可以精确的执行到python中的某一个函数,提供入保,并取得返回值。
3,尽量让客户简化操作过程最好,比如安装python环境,安装第三方numpy库等(当然,我知道很多时候这些东西都是必须的)。
如果方法可行,经测试没问题,可以适当提高赏金。若csdn我没回复您,请加我微信,lC862739233
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "Python.exe";
startInfo.Arguments = "yourfile.py";
process.StartInfo = startInfo;
process.Start();
以下是个人意见,仅供参考
可以将python代码封装成API,用flask框架等
然后c#.调用这些API即可
我看了下大多的建议是:用pyinstaller把python程序做成exe再用WPF的Process类去调用它
参考链接:https://zhuanlan.zhihu.com/p/489688440