我有一些python代码可以执行某项任务。我需要从C#调用此代码而不将python文件转换为.exe,因为整个应用程序都是基于C#构建的。
我该怎么做?
答案 0 :(得分:6)
如果您的python代码可以通过IronPython执行,那么这绝对是可行的方法 - 它提供了最佳的互操作性,这意味着您将能够在脚本中使用.Net对象。
从C#调用IronPython脚本的方法有很多,从将脚本编译为可执行文件到执行单个脚本文件或事件动态执行用户输入的表达式 - 检查文档并发布另一个问题你还有困难。
如果您的脚本是CPython脚本,并且无法与IronPython一起使用,那么您的选项会受到更多限制。我相信有一些CPython / C#interop存在,但我在谷歌快速搜索后找不到它。我能想到的最好的事情就是直接使用python.exe
和Process
类来调用脚本。
答案 1 :(得分:5)
查看IronPython。
根据您的回答和评论,我相信您可以做的最好的事情就是在您的应用程序中嵌入IronPython。与往常一样,有关于此的相关SO question。正如Kragen所说,重要的是不要依赖CPython模块。
答案 2 :(得分:1)
Process.Start就是你所追求的。它允许你调用另一个程序,传递它的参数。