PyRun_File
nick_knight at my-deja.com
nick_knight at my-deja.com
Wed Aug 9 10:23:57 EDT 2000
Hello I found the answer so for future reference spend a bit more time
searching through the news groups :) - the function I needed was
PyErr_Print();
Thanks anyhow
Nick
In article <8mqumu$5ho$1 at nnrp1.deja.com>,
nick_knight at my-deja.com wrote:
> Hello,
>
> I am embedding Python into a server which means I require full logging
> from python if and when it runs any programs.
>
> I am running the following small test: -
> OS Win 95
>
> #include "Python.h"
>
> #include "stdafx.h"
> #include <stdio.h>
>
> int main(int argc, char* argv[])
> {
> PyObject *pDict;
>
> //char *filename = "e:\\downloads\\python\\testbed\\test.py";
> Py_Initialize(); //Required
>
> pDict = PyDict_New(); //Create our instance
>
> /*
> Don't need to use this bit now - we will
> use for python itself for all of that.
> FILE * OurFile;
>
> OurFile = fopen(filename,"rb");
> */
>
> //Not sure what this bit does - sets up the python envioroment
> variables I think ??
> PyDict_SetItemString(pDict, "__builtins__", PyEval_GetBuiltins()
);
> PyRun_String("import sys", Py_file_input, pDict, pDict);
>
> PyRun_String("sys.stdout = open('c:/temp.txt','a')",
> Py_file_input,
pDict,
> pDict);
>
> PyRun_String("sys.stderr = open('c:/temp1.txt','a')",
> Py_file_input,
pDict,
> pDict);
>
> PyRun_String("print 'Hello'", Py_file_input, pDict, pDict);
>
> PyRun_String("sys.path.insert(0,'e:/downloads/python/Python-
> 1.5.2/Demo/ibrowse')"
> , Py_file_input,
pDict,
> pDict);
>
> char *filename = "e:/Downloads/python/testbed/test.py";
> FILE * OurFile = fopen(filename,"r");
> PyRun_File (OurFile, filename, Py_file_input, pDict, pDict);
>
> PyRun_String("print 'This is absolute !'", Py_file_input, pDict,
> pDict);
>
> return 0;
> }
>
> Now if test.py contains no errors the program runs fine - evrything
> gets printed to temp.txt. Including output from test.py. But as soon
as
> there is an error in test.py i.e.
>
> print rubbish
> instead of
> print "rubbish"
>
> then no error gets printed to stderr (temp1.txt), and all printing to
> stdout (temp.txt) stops.
>
> This is true of when not redirecting stdio.
>
> At the very least is it possible to get python to print to stderr ???
>
> Thanks
>
> Sent via Deja.com http://www.deja.com/
> Before you buy.
>
Sent via Deja.com http://www.deja.com/
Before you buy.
More information about the Python-list
mailing list