我有一些执行特定任务的python代码。我需要从C#调用此代码,而无需将python文件转换为.exe,因为整个应用程序都基于C#构建。
我怎样才能做到这一点?
如果您的Python代码可以通过IronPython执行,那么这绝对是正确的方法-
它提供了最佳的互操作性,这意味着您将能够在脚本中使用.Net对象。
从C#调用IronPython脚本的方法有很多,从将脚本编译为可执行文件到执行单个脚本文件或事件(在用户键入时动态执行表达式)都可以-
检查文档并发布另一个问题,如果您仍然遇到问题。
如果您的脚本是CPython脚本,并且不适合与IronPython一起使用,那么您的选择就更加有限。我相信存在一些CPython /C#互操作,但是在快速Google搜索后我找不到它。我能想到的最好的事情就是直接使用python.exe
和Process
类直接调用脚本。
问题内容: 所以我想通过cython从c调用一些python代码。我设法从c调用cython代码。而且我还可以从cython调用python代码。但是,当我将它们全部加在一起时,会丢失一些东西。 这是我的python代码(): 这是我的cython“ bridge”(): 这是c代码(): 运行此命令时,出现以下异常: 我怀疑缺少的部分: 我还没打电话 我还没有 Cython没有产生任何东西- 不
问题内容: 有没有人能将C#代码集成到Java应用程序中呢? 代码很小,所以我可以用Java重写,但是如果可能的话,我宁愿重用代码。不要重复自己,等等。 另外,我知道我可以将C#公开为Web服务或其他任何东西,但是其中包含一些安全性/加密功能,因此,我宁愿将其紧密集成。 编辑:它将在基于服务器的应用程序上,因此“下载”另一个运行时是无关紧要的。 问题答案: 有一个IL到Java字节码编译器Gras
gcc-g-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.
问题 你想在C中安全的执行某个Python调用并返回结果给C。 例如,你想在C语言中使用某个Python函数作为一个回调。 解决方案 在C语言中调用Python非常简单,不过设计到一些小窍门。 下面的C代码告诉你怎样安全的调用: #include <Python.h> /* Execute func(x,y) in the Python interpreter. The argument
问题内容: 我有一个C函数,我想从C 调用。我无法使用“ ”这样的方法,因为C函数无法使用g 进行编译。但是使用gcc可以很好地编译。有什么想法如何从C ++调用函数吗? 问题答案: 像这样编译C代码: 然后是这样的C ++代码: 然后使用C ++链接器将它们链接在一起: 当您包含C函数的声明时,还必须告诉C ++编译器C头即将到来。因此开始于: 应该包含以下内容: (在此示例中,我使用了gcc,
问题内容: 我猜想有没有一种方法可以使用C#从IronPython调用Python代码?如果是这样,怎么办? 问题答案: 该过程非常简单,尤其是在C#/。NET 4应用程序中,该应用程序通过使用该类型改进了对动态语言的支持。但这最终取决于您打算如何在应用程序中使用(Iron)Python代码。您始终可以作为一个单独的进程运行,并传入您的源文件,以便可以执行它们。但是您可能想将它们 托管 在C#应用
问题内容: 构建与C或C ++库的Python绑定的最快方法是什么? (如果这很重要,我正在使用Windows。) 问题答案: Boost Python库是用于连接Python和C 的框架。它使您可以快速而无缝地将C 类的函数和对象暴露给Python,反之亦然,而无需使用特殊工具-仅使用C 编译器即可。它被设计为以非介入方式包装C 接口,因此您不必为了包装而完全更改C ++代码,从而使Boost.
问题内容: 我尝试将Python脚本嵌入到我的C 程序中。在阅读了有关嵌入和扩展的一些知识之后,我了解了如何打开自己的python脚本以及如何向其传递一些整数。但是现在我有点不了解如何解决我的问题。我必须做这两个事情,从C 调用Python函数,并从我的嵌入式Python脚本调用C 函数。但是我不知道该从哪里开始。我知道我必须编译一个.so文件以将我的C 函数暴露给Python,但是我无能为力,因