会研究这个课题纯粹是因为尝试一下能否实现。其实关于.NET调用Python,已经有了IronPython,但是IronPython的更新缓慢,库安装也不如原生Python那么方便。(大佬可以无视我),如果能实现.NET调用Python,那么两者混合编程开发将会提高效率,在某些特殊的应用场景中。
其实混合编程方案众多,例如开发本地服务器,或者利用文件来进行交互。但是一来速度慢,二来不够安全。虽然很多会这样实现吧。我认为Python也提供了更加安全的方式。
原理大家都懂,Python是C开发的,所以通过C调用Python,然后在用托管C++开发CLR类库给C#调用。这样,我们只需要对Python源码和CLI有一定的认识和了解就可以做到了。并不是什么难事,以下是我个人的开发过程
首先我们尝试使用C++来调用Python,网上教程很多。我新建了一个C++空项目。
需要注意的是,我们调整平台为我们当前Python版本的平台,比如32位Python就用x86,然后我们设置工程的属性,添加Python库到我们的工程
其中包含目录为Python安装文件夹下的include文件夹,库目录和引用目录都设置为Python安装文件夹下的libs文件夹。确定后就可以开始编写代码了。