从C#调用Python代码(.py文件)

7

我有一些Python代码可以完成某个任务。我需要在不将Python文件转换为.exe的情况下从C#中调用此代码,因为整个应用程序都是基于C#构建的。

我该如何做到这一点?


尝试访问http://pythonnet.github.io/。 - denfromufa
3个回答

6
如果你的Python代码可以通过IronPython执行,那么这绝对是最好的选择——它提供了最佳的互操作性,并意味着你将能够在脚本中使用.Net对象。
有许多方法可以从C#调用IronPython脚本,从编译脚本为可执行文件到执行单个脚本文件或动态执行用户输入的表达式 - 查看文档并在仍然遇到问题时发布另一个问题。
如果你的脚本是CPython脚本,无法适应IronPython工作,那么你的选择就更加有限。我相信一些CPython/C#互操作性是存在的,但我在快速搜索后找不到它。我能想到的最好的办法就是直接使用python.exeProcess类调用脚本。

5

请看IronPython

根据您的回答和评论,我认为最好的做法是将IronPython嵌入到您的应用程序中。与往常一样,这方面有一个相关的SO 问题。正如Kragen所说,不依赖于CPython模块非常重要。


它将Python代码转换为.exe文件,然后由C#调用。我希望Python程序直接被C#代码调用。 - Raj
@user692856 你可以使用IronPython将Python代码编译成DLL而不是EXE,然后从你的C#项目中引用它。 - Bradley Smith

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接