@TOC
前言
最近在做一个项目,涉及到了如何用C#调用Python文件。汇总了一下网上找来的资料,具体参考了这篇博客c#调用python的四种方法(尝试了四种,只详细讲解本人成功的后两种,其余方法只列出,详细用法请自行谷歌百度)。
对于第一种方法,使用IronPython2.7的方法,我找到了更详细的博客C#如何调用Python执行脚本,并将执行结果显示值显示至C#界面,不过Python2.7可能无法满足我们项目的需求,当然我也找到了类似的另外两种可以使用Python3的方法,还没有试过,在这里提供给大家参考C#使用公共语言拓展(CLE)调用Python3(使用TensorFlow训练的模型)、pythonnet c#调用并集成python代码。
对于第三和第四种方法,因为要使用命令行窗口,而且还要考虑不同用户的python安装情况如何,在项目实际使用时效果肯定是很不好的,所以在这里不做过多的介绍,原博主也给出了他自己的源代码,大家可以自己尝试一下。
重点说一下第二种方法。我在CSDN上找了好多博客,大家的方法都大同小异,可能真的是看人品吧,我试了好几次都失败了,最后在朋友的帮助下才成功……
配置环境
这里先说一下,我是win10+VS2017+Python3.7.4。
第一步新建一个控制台项目,修改属性页
选择Debug|x64
第一个修改的是C/C++——常规——附加包含目录:添加你所安装的Python目录下的include目录路径。
第二个修改的是链接器——常规——附加库目录:添加你所安装的Python目录下的libs目录路径。
第二步修改Python安装目录下文件
找到Python安装目录,找到libs目录复制python37.lib到本目录,改名为python37_d.lib。
代码测试
现在我们可以来简单测试一下
测试用Python3语法输出“Hello World!”
我们定义一个print(),里面用了Python3的语法。
1 |
|
测试用Python文件输出“Hello World!”
定义一个Hello(),里面调用了Test001.py文件。
1 |
|
Test001.py文件内容如下:
1 | def Hello(): |
注意,要把Test001.py文件放到ConsoleApplication1.exe同级目录
结尾
如果一切顺利的话,那你现在已经在控制台看到输出了;如果不顺利的话,可以找找其他的博客,或者换一个方法,不要拘泥于这一个思路……
从今天开始,这个博客会把我之前做项目遇到的一些问题的解决办法总结一下,也算是一种积累吧,估计等我项目做完,会写成一本《扑街实录》。
引用
c#调用python的四种方法(尝试了四种,只详细讲解本人成功的后两种,其余方法只列出,详细用法请自行谷歌百度)
C#如何调用Python执行脚本,并将执行结果显示值显示至C#界面
C#使用公共语言拓展(CLE)调用Python3(使用TensorFlow训练的模型)
pythonnet c#调用并集成python代码