我有一些执行特定任务的 python 代码。我需要从 C# 调用此代码而不将 python 文件转换为 .exe,因为整个应用程序是基于 C# 构建的。
我怎样才能做到这一点?
我有一些执行特定任务的 python 代码。我需要从 C# 调用此代码而不将 python 文件转换为 .exe,因为整个应用程序是基于 C# 构建的。
我怎样才能做到这一点?
如果您的 python 代码可以通过IronPython执行,那么这绝对是要走的路——它提供了最好的互操作性,意味着您将能够在脚本中使用 .Net 对象。
有很多方法可以从 C# 调用 IronPython 脚本,从将脚本编译为可执行文件到执行单个脚本文件或在用户输入表达式时动态执行表达式 - 检查文档并发布另一个问题,如果您仍然遇到问题。
如果您的脚本是 CPython 脚本并且不能适应 IronPython,那么您的选择将更加有限。我相信存在一些 CPython / C# 互操作,但在快速谷歌搜索后我找不到它。我能想到的最好的事情就是直接使用python.exe
和Process
类调用脚本。
看看IronPython。
根据您的回答和评论,我相信您能做的最好的事情就是将 IronPython 嵌入到您的应用程序中。与往常一样,有一个相关的 SO问题。正如 Kragen 所说,重要的是不要依赖 CPython 模块。
Process.Start是您所追求的。它允许您调用另一个程序,并为其传递参数。