Ivan Illarionov schrieb: > Ben Sizer <kylo...@gmail.com> wrote: >> What am I doing wrong? > > What are you trying to achieve? > If you want to modify sys.path I suggest using Python/C API directly: > (boilerplate removed) > PyImport_ImportModule("sys") > PyObject_GetAttrString(sysmod_pointer, "path") > PyList_Insert(pathobj_pointer, 0, path_python_str)
The sys module has its own set of special functions like PySys_GetObject. The following (untested) code should take care of error checking and ref counting. #include "Python.h" PyObject* addtosyspath(const char* addpath) { PyObject *syspath=NULL, *path=NULL; int result; if ((syspath = PySys_GetObject("path")) == NULL) return NULL; if ((path = PyString_FromString(addpath) == NULL) { Py_DECREF(syspath); return NULL; } result = PyList_Insert(syspath, 0, path); Py_DECREF(syspath); Py_DECREF(path); if (result != 0) return NULL; Py_RETURN_NONE; } Christian -- http://mail.python.org/mailman/listinfo/python-list