C程序调用Python脚本的例子

 代码如下 复制代码

#include <python2.7/Python.h>
int main(){
PyObject * g_pModule = NULL;
Py_Initialize(); //使用python之前,要调用Py_Initialize();这个函数进行初始化
if (!Py_IsInitialized())
{
printf("init errorn");
return -1;
}
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
g_pModule =PyImport_ImportModule("test");//这里是要调用的文件名,我们这里是当前目录下test.py
if (!g_pModule) {
printf("Cant open python file!n");
return -2;
}
PyObject * test1 = PyObject_GetAttrString(g_pModule,"test1");//这里是要调用的函数名
PyObject *objResult = PyObject_CallFunction(test1,"i,s",2,e);//调用函数
if (!objResult){
printf("invoke function failn");
}
 
PyObject * test2= PyObject_GetAttrString(g_pModule,"test2");//这里是要调用的函数名
objResult = PyObject_CallFunction(test2,"i",2);//调用函数
char * x = PyString_AsString(objResult);
printf("%sn",x);
Py_Finalize();//调用Py_Finalize,这个跟Py_Initialize相对应的。
}

Python程序test.py

 代码如下 复制代码

def test1(s,str):
print s+str
return 0
def test2(s):
return s

C程序的编译方法

 代码如下 复制代码

#假设我们的python编译的时候安装在/opt/python里,那么我们可以用这样的命令来编译程序
$gcc -I/opt/python/include -L/opt/python/lib/ -lpython2.7 test.c

注意: 这里要求python编译的时候,需要有动态链接库即加上--enable-shared

 代码如下 复制代码

./configure --prefix=/opt/python  --enable-shared

时间: 2024-10-26 18:39:26

C程序调用Python脚本的例子的相关文章

java直接调用python脚本的例子_python

复制代码 代码如下: import java.io.BufferedReader;import java.io.InputStreamReader; public class Main { public static void main(String[] args) {  try {   System.out.println("start");   Process pr = Runtime.getRuntime().exec("python test.py");  

从IBM InfoSphere Streams应用程序调用Python代码

还可以在一个 Streams 应用程序的上下文内调用 Python 代码.学习如何直接从 IBM InfoSphere Streams 应用程序调用 Python 代码. IBM InfoSphere Streams 是一个高性能的实时事件处理中间件.它独特的优势在于能够从各种不同的数据来源获取结构化和非结构化数据,以用于执行实时分析.它通过将一种称为 SPL(Streams Processing Language,流处理语言)的易于使用的应用程序开发语言与一个分布式运行时平台相结合来完成此任务

python-Android程序中如何调用Python脚本

问题描述 Android程序中如何调用Python脚本 如题,需求是要求程序能执行Python中的方法.请注意不是在Android上编写Python程序,目前正在学习jni相关的方法,请有在Android程序中执行脚本文件的相关经验的大牛来指点一二,感激不尽!! 解决方案 C++中调用Python脚本C++中调用Python脚本调用其它python脚本中的函数 解决方案二: http://chenyaqiong81081.blog.163.com/blog/static/446225942007

Java如何调用Python脚本

问题描述 Java程序中如何调用Java脚本啊?在网上看到一些相关的例子:importorg.python.core.PyException;importorg.python.core.PyInteger;importorg.python.core.PyObject;importorg.python.util.PythonInterpreter;publicclassTestPython{publicstaticvoidmain(String[]args)throwsPyException{Py

C#调用Python脚本的简单示例_C#教程

IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Hugunin所发起,是一个开源的项目,基于微软的 DLR引擎.IronPython的在CodePlex上的主页:http://ironpython.codeplex.com/  使用场景: 如果你的小伙伴会写Python脚本,而且已经实现大部分项目的功能不需要再用C# 实现.现在缺少窗体,此时Python+C#的组合就可以完美的结局问题啦! 示例: 借由IronPython,就可以利用.NET执行存储在

android网络-android调用python脚本

问题描述 android调用python脚本 请问有没有android调用python脚本的书籍,我有要开发一个恶意网址检测的android应用 解决方案 用C++调用PYTHON脚本python-调用其他的python脚本 解决方案二: 不能直接调用,恶意网址监测,对于监测的工作,你可以放在服务器端(需要服务器)进行处理.

C#通过IronPython调用python脚本中的函数报错 no module named…

问题描述 python脚本中import了第三方的包,单独执行运行脚本没问题,C#通过IronPython调用该脚本则报错:nomodulenamed-(引用的包名),如何解决? 解决方案 解决方案二:将包名如requests2.7中的requests文件夹复制到bin中,不过引用这个包后会出现另外一个报错,求解决解决方案三:现在是只要引用的py文件里有inport,就会报:Microsoft.Scripting.SyntaxErrorException:unexpectedtoken'from

Java直接调用python脚本

示例代码如下: import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { try { System.out.println("start"); Process pr = Runtime.getRuntime().exec("python test.py"); Buffered

如何从 IBM InfoSphere Streams 调用 Python 代码

概述 IBM InfoSphere Streams 是一个高性能的实时事件处理中间件.它独特的优势在于能够从各种不同的数据来源获取结构化和非结构化数据,以用于执行实时分析.它通过将一种称为 SPL(Streams Processing Language,流处理语言)的易于使用的应用程序开发语言与一个分布式运行时平台相结合来完成此任务.这个中间件还提供了一个灵活的应用程序开发框架,将使用 C++ 和 Java 编写的代码集成到 Streams 应用程序中.除了 C++ 和 Java,许多构建真实