Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Python C Embedded ! Attribute Error

Reply
Thread Tools

Python C Embedded ! Attribute Error

 
 
pycraze
Guest
Posts: n/a
 
      07-20-2007
Hi ,

I am using the below C code so that i can embed a Python Code and
get input from a python function and use it in C code .

Below is the C Code


#include <Python.h>

int
main(int argc, char *argv[])
{
PyObject *pName, *pModule, *pDict, *pFunc;
PyObject *pArgs, *pValue;
int i;

if (argc < 3) {
fprintf(stderr,"Usage: call pythonfile funcname [args]\n");
return 1;
}

Py_Initialize();
pName = PyString_FromString(argv[1]);
/* Error checking of pName left out */

PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('/home/dennis/workplace/
aps098')");
PyRun_SimpleString("sys.path.append('/home/dennis/workplace/aps098/
lib')");
PyRun_SimpleString("import server, logger,config, ntlm_procs,
config_affairs ");
pModule = PyImport_Import(pName);
Py_DECREF(pName);

if (pModule != NULL) {
pFunc = PyObject_GetAttrString(pModule, argv[2]);
/* pFunc is a new reference */

if (pFunc && PyCallable_Check(pFunc)) {
pArgs = PyTuple_New(argc - 3);
for (i = 0; i < argc - 3; ++i) {
pValue = PyInt_FromLong(atoi(argv[i + 3]));
if (!pValue) {
Py_DECREF(pArgs);
Py_DECREF(pModule);
fprintf(stderr, "Cannot convert argument\n");
return 1;
}
/* pValue reference stolen here: */
PyTuple_SetItem(pArgs, i, pValue);
}
pValue = PyObject_CallObject(pFunc, pArgs);
Py_DECREF(pArgs);
if (pValue != NULL) {
printf("Result of call: %ld\n", PyInt_AsLong(pValue));
Py_DECREF(pValue);
}
else {
Py_DECREF(pFunc);
Py_DECREF(pModule);
PyErr_Print();
fprintf(stderr,"Call failed\n");
return 1;
}
}
else {
if (PyErr_Occurred())
PyErr_Print();
fprintf(stderr, "Cannot find function \"%s\"\n", argv[2]);
}
Py_XDECREF(pFunc);
Py_DECREF(pModule);
}
else {
PyErr_Print();
fprintf(stderr, "Failed to load \"%s\"\n", argv[1]);
return 1;
}
Py_Finalize();
return 0;
}


The python code is a simple code

def pr(var):
print var

I am getting error

AttributeError: 'module' object has no attribute 'print'
Cannot find function "print"


I am a newbie to python . I need some to embed python in C . Anyone
Pls help

 
Reply With Quote
 
 
 
 
Miki
Guest
Posts: n/a
 
      07-20-2007
Hello,

> I am using the below C code so that i can embed a Python Code and
> get input from a python function and use it in C code .
>
> Below is the C Code

[snipped]

> I am getting error
>
> AttributeError: 'module' object has no attribute 'print'
> Cannot find function "print"

How do you run your program (I suspect with 'pr pr print 1', should be
'pr pr pr 1').

FWIW, the following simplified program works:
#include <Python.h>

int
main(int argc, char *argv[])
{
PyObject *modname, *module, *args, *value, *func;

Py_Initialize();

PyRun_SimpleString("import sys; sys.path.append(\".\")");

modname = PyString_FromString("pr");
module = PyImport_Import(modname);
Py_DECREF(modname);

if (NULL == module) {
fprintf(stderr, "error: can't load\n");
Py_Finalize();
return 1;
}

func = PyObject_GetAttrString(module, "pr");

args = PyTuple_New(1);
value = PyLong_FromLong(10);
PyTuple_SetItem(args, 0, value);

PyObject_CallObject(func, args);

Py_Finalize();
return 0;
}

HTH,
--
Miki <(E-Mail Removed)>
http://pythonwise.blogspot.com


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Embedded vs. Non-embedded Tests Trans Ruby 11 09-05-2007 11:22 AM
Embedded languages based on early Ada (from "Re: Preferred OS, processor family for running embedded Ada?") Colin Paul Gloster VHDL 48 04-10-2007 10:31 AM
ATTRIBUTE ERROR: 'module' object has no attribute 'ssl' johnny Python 5 12-10-2006 01:10 PM
How to display images embedded in e-mail as embedded, not attachments Jim Firefox 4 12-11-2004 05:36 AM
Databind an embedded control in an embedded datagrid Thomas Dodds ASP .Net Datagrid Control 0 07-26-2004 08:20 PM



Advertisments