我可以在 python 中编写我的应用程序,然后从 C 中运行它们吗?
Posted
技术标签:
【中文标题】我可以在 python 中编写我的应用程序,然后从 C 中运行它们吗?【英文标题】:Can I write my apps in python and then run them from C? 【发布时间】:2009-04-27 10:06:25 【问题描述】:我需要编写一个客户端-服务器应用程序。我想用python写,因为我对它很熟悉,但是我想知道python代码是否可以从C运行。我计划有两个C项目,一个包含服务器代码,一个包含包含客户端代码。
是否可以评估 python 代码并运行它?还有另一种方法吗?
最重要的是,python 代码必须从 C 中运行,并且它的行为必须与在 python 解释器下运行时完全相同。我现在问这个,因为我不想浪费时间编写 python 代码只是为了以后发现我无法实现这个。作为旁注,我只打算使用基本的 Python 模块(socket、select 等)。
编辑:也许这个编辑是有序的。我之前没有在 C 中嵌入 python,我不知道行为会是什么。问题是,服务器将有一个选择循环,因此将“永远”运行。 C会让我这样做吗?
EDIT2:这就是我需要这样做的原因。在学校,一位老师让我们用 C 语言做一个非常复杂的客户端-服务器应用程序。我打算作弊,用 python 编写代码并将其嵌入到 C 中。
【问题讨论】:
你的老师不想看你的源代码吗?练习的目的不是证明您对 C 的了解吗? 我觉得这样“作弊”真的不是个好主意。 这不是作弊,这是浪费精力——你可以用纯 Python 编写你想要的最复杂的 Web 服务器或 Web 客户端。 确实是作弊,我想你的老师不会欣赏的。在现实世界中,欢迎您尝试最佳解决方案。不在学校。作为一个典型的例子,在现实世界中,最好的解决方案往往不是编程,而是重用现有的程序。这不是编程作业的可接受答案。 老师/导师会想看看你的代码。我希望他/她至少想要。然后就会很明显了。 【参考方案1】:这是一个很好的教程http://www.linuxjournal.com/article/8497
【讨论】:
这是一篇非常好的文章。在这种特殊情况下,我实际上不会这样做,但无论如何,我相信你回答正确。 :)【参考方案2】:它被称为嵌入 Python——它在 Python 文档中得到了很好的介绍。见https://docs.python.org/extending/embedding.html
见how do i use python libraries in C++?
【讨论】:
【参考方案3】:是的,您可以通过在程序中嵌入解释器来从 C 运行 Python 代码。您可以将部分 C 代码公开给 Python,并从 Python 调用公开的 C 代码,就好像它们是普通的 Python 函数一样。
Python 文档中的Embedding 部分是一个好的开始。也可以看看 cobbal 的article linked to。
【讨论】:
以上是关于我可以在 python 中编写我的应用程序,然后从 C 中运行它们吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何编写一个SHELL脚本,然后在发现我的程序DOWN掉之后,运行我的另一个JAVA程序。