Hi, I wrote a code PythonWrapper and SimplePythonTest which uses PythonWrapper. using SimplePython; namespace SimplePythonTest { /// <summary> /// Python Wrapper Tests /// </summary> [TestFixture] public class PythonTests { PythonWrapper py; /// <summary> /// PythonTests Constructor /// </summary> public PythonTests() { py = new PythonWrapper(); py.Init(); PyObject po; po = py.LoadModule("os"); po = py.LoadModule("sys"); po = py.LoadModule("psutil"); } /// <summary> /// Python Simple Test /// </summary> [Test] public void CommonPythonTests() { PyObject po = py.Execute("os.getcwd()"); Trace.WriteLine(po.Repr()); py.Close(); } } } namespace SimplePython { /// <summary> /// Python Wrapper via XMLRPC/Python 2.7.3/.Net for Python. /// </summary> public class PythonWrapper { /// <summary> /// Inter Lock /// </summary> private IntPtr gs; /// <summary> /// Constructor /// </summary> public PythonWrapper() { } /// <summary> /// Initialize PythonEngine /// </summary> public void Init() { PythonEngine.Initialize(); gs = PythonEngine.AcquireLock(); } /// <summary> /// Load Module /// </summary> /// <param name="strModule">Module Name</param> /// <returns></returns> public PyObject LoadModule(string strModule) { return PythonEngine.ImportModule(strModule); } /// <summary> /// Execute Python Command /// </summary> /// <param name="strCommand">Python Command</param> /// <returns></returns> public PyObject Execute(string strCommand) { PyObject po = PythonEngine.RunString(strCommand); return po; } public void Close() { PythonEngine.ReleaseLock(gs); PythonEngine.Shutdown(); } } } When testing (CommonPythonTests), it initializes and loads modules, but PythonEngine.RunString() doesn't seem to work properly. Is any something wrong in my code which gets os.getcwd()? Furthermore, I can't find the difference between PythonEngine.RunString() and PythonEngine.RunSimpleString(). Thank you, Spark.