Thanks for the super fast responses guys, amazing.<div><br></div><div>Jeff, thanks, i had tried the popen, but was never able to get the syntax to make it work properly.  just too much of a n00b.  thanks though.</div><div>
<br></div><div>Bruce, the .NET calls worked perfectly.  my next step was going to be to try to build a dll to make it work, but this is so much easier.  </div><div><br></div><div>Thanks for the super help guys.  Dragged me out of the fire.</div>
<div>-b<br><br><div class="gmail_quote">On Thu, Jan 20, 2011 at 7:11 AM, Bruce Bromberek <span dir="ltr">&lt;<a href="mailto:bruce.bromberek@gmail.com">bruce.bromberek@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div>If you are committed to Ironpython, then you can use the the .NET calls<span style="white-space:pre-wrap">        </span></div><div><span style="white-space:pre-wrap"><br></span></div>
<div><span style="white-space:pre-wrap"><span style="white-space:normal">from System.Diagnostics import Process</span></span></div><div><span style="white-space:pre-wrap"><span style="white-space:normal">path = </span></span><span style="font-family:&#39;courier new&#39;, monospace;font-size:13px;border-collapse:collapse">r&quot;C:/Program Files/Chaos Group/V-Ray/Maya 2011 for x64/bin&quot;</span></div>

<div><span style="white-space:pre-wrap"><span style="white-space:normal">execfile = &quot;</span></span><span style="font-family:&#39;courier new&#39;, monospace;font-size:13px;border-collapse:collapse">vrimg2exr.exe&quot;</span></div>

<div><span style="white-space:pre-wrap"><span style="white-space:normal">CMDARGS = &quot;%s %s&quot; % (infile,outfile)</span></span></div><div><br></div><div><span style="white-space:pre-wrap"></span>command = &quot;%s\\%s&quot;% (path,execfile)</div>

<div>print &quot;starting command&quot;</div><div><span style="white-space:pre-wrap">        </span></div><div>proc = Process()</div><div>proc.StartInfo.FileName = command</div><div>proc.StartInfo.Arguments = CMDARGS</div>
<div>proc.Start()</div><div>proc.WaitForExit()</div><div>print &quot;Done&quot;</div></div><div><br></div><div><br></div><div>or I have used subprocess to send data in a stream and capture the output.  It is possible to do the same thing with System.Diagnostics but I don&#39;t have an example.</div>

<div><br></div><div><div>import subprocess as S</div></div><div><div><br></div><div>mycmd = &quot;XSLTools\\msxsl.exe - FixEncodedMessage.xslt -o %s&quot; % Response</div><div>output = S.Popen(mycmd,stdin=S.PIPE,shell=True).communicate(xml)[0]</div>

</div><div><br></div><div><br></div><div>If you problem is that the IronPython engine you are using in <span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">Deadline  doesn&#39;t have the standard python modules, you could always build the modules you need into a DLL on another machine, place the DLL out on the render farm and use</span></div>

<div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br></span></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><div>
import clr</div><div>clr.AddReference(&#39;StdLib&#39;)</div><div>import subprocess</div></span></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">...</span></div>
<div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br></span></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br>
</span></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br></span></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">to build the DLL you would can use the pyc.py script that comes with Ironpython.  </span><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">I typically create a subfolder in my project, copy the Standard Lib modules I need (and their dependencies) and use this script from the commandline to generate the DLL.</span></div>

<div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br></span></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">#Compile Folder into DLL</span></div>

<div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">import clr</span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">clr.AddReference(&#39;mscorlib&#39;)</span></font></div>

<div><font face="arial, sans-serif"><span style="border-collapse:collapse">from System import IO</span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">from System.IO.Path import Combine</span></font></div>

<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">def walk(folder):</span></font></div>
<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><span style="white-space:pre-wrap">        </span>for file in IO.Directory.GetFiles(folder):</span></font></div>
<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><span style="white-space:pre-wrap">                </span>yield file</span></font></div><div>
<font face="arial, sans-serif"><span style="border-collapse:collapse"><span style="white-space:pre-wrap">        </span>for folder in IO.Directory.GetDirectories(folder):</span></font></div>
<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><span style="white-space:pre-wrap">                </span>for file in walk(folder): </span></font></div>
<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><span style="white-space:pre-wrap">                        </span>yield file</span></font></div><div>
<font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">folder = IO.Path.GetDirectoryName(__file__)</span></font></div>

<div><font face="arial, sans-serif"><span style="border-collapse:collapse">print folder</span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br>
</span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">myfiles = list(walk(IO.Path.Combine(folder, &#39;STDLIB&#39;)))</span></font></div>
<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br>
</span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">clr.CompileModules(Combine(folder,&quot;.\StdLib.dll&quot;), *myfiles)</span></font></div>
</div><div><div></div><div class="h5"><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br></span></div>&gt; The existing script is works like this (I&#39;m sure this is error loaded and<br>

&gt; obvious n00b script, so any input would be hugely appreciated):<br>&gt; converter = subprocess.Popen([r&quot;C:/Program Files/Chaos Group/V-Ray/Maya 2011<br>&gt; for x64/bin/vrimg2exr.exe&quot;, inFile, outFile],stdout=subprocess.PIPE)<br>

&gt; print converter.communicate()[0]<br><br><br>
</div></div><br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br></blockquote></div><br></div>