python - 如何在python中运行c代码

标签 python c++ c python-3.x

如何在 python 中以以下形式运行 c/c++ 代码:

def run_c_code(code):
    #Do something to run the code
code = """
       Arbitrary code
       """
run_c_code(code)

如果有人可以提供一个不涉及安装软件包的简单解决方案,那就太好了。我知道 C 不是脚本语言,但如果它可以进行“迷你”编译,能够将代码运行到控制台中,那就太好了。代码应该像正常编译一样运行,但这需要能够在其余代码运行它时动态工作,如果可能的话,尽可能快地运行,并且能够创建和编辑变量,以便 python 可以使用它。如果需要,可以将代码预编译为code = """something"""

对所有的要求感到抱歉,但如果你能让c代码在python中运行那就太好了。预先感谢所有答案..

最佳答案

正如其他人已经指出的那样,要从 Python“内部”​​运行 C/C++ 代码,您必须将所述 C/C++ 代码写入自己的文件中,正确编译它,然后从 Python 执行该程序代码。

你不能只输入一个命令,编译它,然后执行它。您始终必须建立整个“框架”。当您尚未编写 20 行后结束类/函数/语句的 } 时,您无法编译程序。此时,您必须编写整个 C/C++ 程序才能使其正常工作。它根本不应该在运行时逐行解释。您可以使用 python、bash/dash/batch 和其他一些工具来做到这一点。但 C/C++ 绝对不是其中之一。

随之而来的是几个问题。首先,C/C++ 部分可能需要来自 Python 部分的数据。我不知道有什么方法可以单独在 RAM 中执行此操作(也许有一个,但我不知道),因此 Python 部分必须将其写入一个文件,即 C/C++ 部分将读取并处理它,然后将处理后的数据放入另一个文件中,然后 Python 部分必须读取该数据并继续。

这又引出了另一点。在这里,我们已经进入了多线程领域,因为当您执行该 C/C++ 程序时,您正在处理第二个线程。因此,您必须以某种方式协调这些程序,以便 Python 部分只有在 C/C++ 部分完成后才能继续。运行起来应该不是一个大问题,但如果操作不当,对性能和 RAM 来说可能是一场噩梦。

在不知道您使用该程序的程度的情况下,我还想补充一点,C/C++ 并不像 Python 那样独立于平台。您必须为运行该程序的每个不同操作系统编译该程序。这可能需要对代码进行微小的更改,并且通常只需要大量的工作,因为您必须针对每个系统进行调试和测试。

<小时/>

综上所述,我认为寻找其他解决方案可能会更好。我不知道为什么您想在 C/C++ 中运行这个特定部分,但我建议尝试用一种语言来完成它。如果你绝对没有办法用 Python 来完成它(我对此表示怀疑,几乎所有东西都有库),那么你应该将 Python 转为 C/C++。

关于python - 如何在python中运行c代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685356/

相关文章:

python - 如何让 Travis CI 安装 tests_require 中声明的 Python 依赖项?

python - python 删除特定Excel单元格的内容

python - 如何将 OSMNx 图转换为 Box2D

c++ - Windows 创建错误 - 可能是事件处理

C - 如何打印具有 15 位数字的计算数字?

python - itertools.groupby 的意外行为

c++ - 观察数据变化的不同方式

c++ - 使用什么代替 Goto 语句?

c - Httperf 文件描述符限制

c - 实现图 DFS