Embedded Python 2.7.2 Importar un módulo desde un directorio definido por el usuario

Estoy incrustando Python en una aplicación C / C ++ que tendrá una API definida.

La aplicación necesita crear instancias de clases definidas en un script, que se estructuran más o menos así:

class userscript1:
    def __init__(self):
        ##do something here...

    def method1(self):
        ## method that can be called by the C/C++ app...etc

He logrado en el pasado (para la prueba de concepto) hacer esto usando el siguiente tipo de código:

PyObject* pName = PyString_FromString("userscript.py");
PyObject* pModule = PyImport_Import(pName);
PyObject* pDict = PyModule_GetDict(pModule);
PyObject* pClass = PyDict_GetItemString(pDict, "userscript");
PyObject* scriptHandle = PyObject_CallObject(pClass, NULL);

Ahora que estoy en un entorno de producción más, esto está fallando en la línea PyImport_Import; creo que esto podría deberse a que estoy tratando de anteponer un directorio al nombre del script, por ejemplo,

PyObject* pName = PyString_FromString("E:\\scriptlocation\\userscript.py");

Ahora, para darle una idea de lo que he intentado, intenté modificar la ruta del sistema antes de todas estas llamadas para que busque este módulo. Básicamente intenté modificar sys.path programáticamente:

PyObject* sysPath = PySys_GetObject("path");
PyObject* path = PyString_FromString(scriptDirectoryName);
int result = PyList_Insert(sysPath, 0, path);

Estas líneas funcionan bien, pero no tienen ningún efecto en hacer que mi código funcione. Obviamente, mi código real tiene una gran cantidad de errores de verificación que he excluido, ¡así que no se preocupe por eso!

Así que mi pregunta: ¿cómo dirijo el intérprete incrustado a mis scripts de manera adecuada para poder crear instancias de las clase

Respuestas a la pregunta(2)

Su respuesta a la pregunta