+ -
当前位置:首页 → 问答吧 → 请大家帮忙处理一个程序错误!!!

请大家帮忙处理一个程序错误!!!

时间:2010-06-22

来源:互联网

我用的是linux平台,请大家帮我看看c+python的程序,为什么报错“can't find pytest.py”
注:pytest.py和c1.c是在同一个目录下。

pytest.py文件:
def add(a,b):
    print "in python function add"
    print "a = " + str(a)
    print "b = " + str(b)
    print "ret = " + str(a+b)
    return a + b


c1.c文件:
#include </usr/include/python2.6/Python.h>

int main(int argc, char** argv)
{  

   PyObject *pName, *pModule, *pDict, *pFunc, *pArgs, *pRetVal;
    Py_Initialize();
   
    // 检查初始化是否成功
    if ( !Py_IsInitialized() )
    {  return -1;  }
   
    // 载入名为pytest的脚本(注意:不是pytest.py)  
    pName = PyString_FromString("pytest");
    pModule = PyImport_Import(pName);
    if ( !pModule )
    {  
        printf("can't find pytest.py");
        getchar();
        return -1;
    }
    pDict = PyModule_GetDict(pModule);
    if ( !pDict )
    {  return -1;  }
   
    // 找出函数名为add的函数
    pFunc = PyDict_GetItemString(pDict, "add");
    if ( !pFunc || !PyCallable_Check(pFunc) )
    {
        printf("can't find function [add]");
        getchar();
        return -1;  
    }
   
    // 参数进栈
    pArgs = PyTuple_New(2);
   
   PyTuple_SetItem(pArgs, 0, Py_BuildValue("l",3));
    PyTuple_SetItem(pArgs, 1, Py_BuildValue("l",4));  
   
    // 调用Python函数
    pRetVal = PyObject_CallObject(pFunc, pArgs);
    printf("function return value : %ld\r\n", PyInt_AsLong(pRetVal));
    Py_DECREF(pName);
    Py_DECREF(pArgs);  
    Py_DECREF(pModule);  
    Py_DECREF(pRetVal);
   
    // 关闭Python
    Py_Finalize();
   
    return 0;
}

作者: kwaz   发布时间: 2010-06-22

自己搞定了.

作者: kwaz   发布时间: 2010-06-22

搞定了为什么不说原因呢

作者: smartlinux   发布时间: 2010-06-22



QUOTE:
自己搞定了.
kwaz 发表于 2010-06-22 17:04



为了让别人知道解决原因,也为了将来自己看的明白,建议朋友把原因写上。。。。

作者: rain_fish   发布时间: 2010-06-22

C程序和脚本目录不一样?

作者: mgqw   发布时间: 2010-06-22