如何在python

时间:2017-10-11 10:04:05

标签: 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"""

很抱歉所有的要求,但如果你可以在python中运行c代码那么这将是伟大的。提前感谢所有答案..

2 个答案:

答案 0 :(得分:1)

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

您不能只键入一个命令,编译它并执行它。你总是必须拥有整个"框架"建立。当你还没有编写结束了20行的类/函数/语句的}时,你就无法编译程序。此时您已经必须编写整个C / C ++程序才能工作。它并不意味着一行一行地解释。你可以用python,bash / dash / batch和其他一些东西来做到这一点。但是C / C ++肯定不是其中之一。

随着这些问题的出现。首先,C / C ++部分可能需要Python部分的数据。我不知道在RAM中单独使用它的任何方式(可能有一个,但我不知道),因此Python部分必须将其写入文件,C / C ++部分将读取并处理它,然后将处理后的数据放入另一个文件,然后Python部分必须读取并继续。

这带来了另一点。在这里,我们已经进入多线程领域,因为您执行该C / C ++程序的那一刻,您正在处理第二个线程。因此,不知何故,您必须协调这些程序,以便只有在C / C ++部分完成后,Python部分才会继续。运行起来不是一个很大的问题,但如果做错了,它可能是性能和内存的噩梦。

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

总而言之,我认为找到另一种解决方案可能会更好。我不知道你为什么要在C / C ++中运行这个特定的部分,但是我建议你尝试用一种语言来完成它。如果你完全没办法在Python (我怀疑,几乎所有的几乎所有的库)中完成它,你应该把你的Python改为C / C ++。

答案 1 :(得分:0)

如果要运行C / C ++代码 - 您需要C / C ++编译器或C / C ++解释器。

前者很容易安排(尽管可能不适合最终用户产品),您只需编译代码并按需运行。

后者要求您尝试自己处理代码并生成可以导入的python代码。鉴于提供编译工具的网站包装gcc / g ++而不是在javascript中实现它,我不确定这个是否值得付出努力。

我怀疑这是一个XY问题;您可能希望稍微退一步,尝试解释为什么要在python脚本中运行c ++代码。