2011-04-08 102 views
7

我有一些python代码可以执行某个任务。我需要从C#中调用此代码,而不必将.py文件转换为.exe,因为整个应用程序都是基于C#构建的。从C调用python代码(.py文件)#

我该怎么做?

+0

尝试http://pythonnet.github.io/ – denfromufa 2015-01-23 17:57:39

回答

6

如果您的python代码可以通过IronPython执行,那么这绝对是一种可行的方式 - 它提供了最好的互操作性,并且意味着您将能够在脚本中使用.Net对象。

有许多方法可以从C#调用IronPython脚本,包括将脚本作为可执行文件编译为执行单个脚本文件或事件,并在用户键入时动态执行表达式 - 检查文档并发布另一个问题如果你仍然有问题。

如果您的脚本是CPython脚本,并且无法与IronPython配合使用,那么您的选项会受到更多限制。我相信存在一些CPython/C#互操作,但是在Google搜索之后我找不到它。我能想到的最好的事情就是直接使用python.exeProcess类来调用脚本。

5

看一看IronPython

根据你的回答和评论,我相信你能做的最好的事情就是将IronPython嵌入到你的应用程序中。与往常一样,这里有一个相关的SO question。正如Kragen所说,重要的是不要依赖CPython模块。

+0

它将python代码转换为.exe文件,然后由c#调用它。我想直接用c#代码调用python程序。 – Raj 2011-04-08 07:06:53

+0

@ user692856您可以随时使用IronPython将python代码编译为DLL而不是EXE,然后从您的C#项目中引用该代码。 – 2011-04-08 07:19:45

1

Process.Start是你所追求的。它允许你调用另一个程序,并传递参数。