<div>BTW, <span style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">PyObject po = PythonEngine.RunString(</span><span style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">strCommand); returns 'null' when running "os.getcwd()", and PythonEngine.RunSimpleString(strCommand) returns '-1'.</span></div>
<div><font color="#222222" face="arial, sans-serif"><br></font></div><div><font color="#222222" face="arial, sans-serif">Currently, I'm working on Async ways to execute a python command (some commands take long to finish a task such as switch configuration, once executing a command, and returns, then gets a result later). </font></div>
<div><font color="#222222" face="arial, sans-serif">Would you give me some suggestions how/what would be best idea for Async wrapper using Python.RunTime?</font></div><div><font color="#222222" face="arial, sans-serif"><br>
</font></div><div><font color="#222222" face="arial, sans-serif">Thanks,</font></div><div><font color="#222222" face="arial, sans-serif">Spark.<br></font><br><div class="gmail_quote">On Thu, Mar 28, 2013 at 2:35 PM, Seungweon Park <span dir="ltr"><<a href="mailto:swpark71@gmail.com" target="_blank">swpark71@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<div><br></div><div>I wrote a code PythonWrapper and SimplePythonTest which uses PythonWrapper.</div><div><br></div>
<div><br></div><div>using SimplePython;</div><div><br></div><div><div>namespace SimplePythonTest</div><div>
{</div><div> /// <summary></div><div> /// Python Wrapper Tests</div><div> /// </summary></div><div> [TestFixture]</div><div> public class PythonTests</div><div> {</div><div> PythonWrapper py;</div>
<div> /// <summary></div><div> /// PythonTests Constructor</div><div> /// </summary></div><div> public PythonTests()</div><div> {</div><div> py = new PythonWrapper();</div>
<div><br></div><div> py.Init();</div><div><br></div><div> PyObject po;</div><div> po = py.LoadModule("os");</div><div> po = py.LoadModule("sys");</div><div>
po = py.LoadModule("psutil");</div>
<div> }</div><div><br></div><div> /// <summary></div><div> /// Python Simple Test</div><div> /// </summary></div><div> [Test]</div><div> public void CommonPythonTests()</div>
<div> {</div><div> PyObject po = py.Execute("os.getcwd()");</div><div> Trace.WriteLine(po.Repr());</div><div><br></div><div> py.Close();</div><div> }</div><div> }</div>
<div>}</div></div><div><br></div><div><br></div><div><div>namespace SimplePython</div><div>{</div><div> /// <summary></div><div> /// Python Wrapper via XMLRPC/Python 2.7.3/.Net for Python.</div><div> /// </summary></div>
<div> public class PythonWrapper</div><div> {</div><div> /// <summary></div><div> /// Inter Lock</div><div> /// </summary></div><div> private IntPtr gs;</div><div><br></div><div>
/// <summary></div><div> /// Constructor</div><div> /// </summary></div><div> public PythonWrapper()</div><div> {</div><div> }</div><div><br></div><div> /// <summary></div>
<div> /// Initialize PythonEngine</div><div> /// </summary></div><div> public void Init()</div><div> {</div><div> PythonEngine.Initialize();</div><div> gs = PythonEngine.AcquireLock();</div>
<div><br></div><div> }</div><div><br></div><div> /// <summary></div><div> /// Load Module</div><div> /// </summary></div><div> /// <param name="strModule">Module Name</param></div>
<div> /// <returns></returns></div><div> public PyObject LoadModule(string strModule)</div><div> {</div><div> return PythonEngine.ImportModule(strModule);</div><div> }</div>
<div><br></div><div> /// <summary></div><div> /// Execute Python Command</div><div> /// </summary></div><div> /// <param name="strCommand">Python Command</param></div>
<div> /// <returns></returns></div><div> public PyObject Execute(string strCommand)</div><div> {</div><div> PyObject po = PythonEngine.RunString(strCommand);</div><div> </div>
<div> return po;</div><div> }</div><div><br></div><div> public void Close()</div><div> {</div><div> PythonEngine.ReleaseLock(gs);</div><div> PythonEngine.Shutdown();</div>
<div> }</div><div> }</div><div>}</div></div><div><br></div><div>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().</div>
<div><br></div><div>Thank you,</div><div>Spark.</div>
</blockquote></div><br></div>