[IronPython] Talk to Python script from C# app...

Curt Hagenlocher curt at hagenlocher.org
Thu Jun 12 12:18:09 PDT 2008


Whether it's CPython or IronPython, you're going to have to deploy something
to the user's PC if you want to run a Python program there.  IronPython
doesn't have any kind of installer; you just copy its modules over with your
application.  But your program almost certainly makes use of parts of the
standard CPython library, which you'd then have to copy over as well.

Even though CPython has an installer under Windows, I suspect you can still
do an "xcopy deployment" of it to most machines provided that you also grab
a copy of Python25.dll from the Windows directory.
To try with IronPython,
You can run ipy.exe the same way as you're running python.exe.  But you'd
want to try this from a command prompt first before going to the trouble of
changing your C# program.
On Wed, Jun 11, 2008 at 3:40 PM, Bob Rosembob <brosembob at yahoo.com> wrote:

>  Thank you Michael and Curt for your quick response.
> I got the script working using the following logic:
>
>
>
> private
> Process P;
>
> ...
>
> string python = @"C:\Python25\python.exe";
>
> string pyscript = @"IronPython\cycle_LR.py";
>
> P =
> new Process();
>
> P.OutputDataReceived +=
> new DataReceivedEventHandler(OnOutputDataReceived);
>
> P.ErrorDataReceived +=
> new DataReceivedEventHandler(OnErrorReceived);
>
> P.StartInfo.UseShellExecute =
> false;
>
> P.StartInfo.RedirectStandardOutput =
> true;
>
> P.StartInfo.RedirectStandardError =
> true;
>
> P.StartInfo.CreateNoWindow =
> true;
>
> P.StartInfo.FileName = @python.ToString();
>
> P.StartInfo.Arguments =
> "-u " + pyscript.ToString() + @" IronPython\cycle.ini";
>
> P.Start();
>
> P.BeginOutputReadLine();
>
> P.BeginErrorReadLine();
>
>
> As you probably guessed I installed latest Python 2.5.2 on my machine.
>
> Now, do I need to include Python 2.5.2 into my deployment package and
> install it on the user's PC or I can some how embed it into my application?
>
>
>
> >>If the former then you can use System.Process to launch the script with
> >>IronPython. You will need to download (rather than install) and launch
> >>the script with 'ipy.exe args...'.
>
>
>
> Wouldn't this approach be simpler, since I don't have to install python on
> user's PC? How exactly can I run ipy.exe with the args?
>
> Curt,
>
> The script that I have to use was created in 2004 and probably was not
> tested with IronPython. The guy who created it left the company and nobody
> modified the script since.
>
>
> Thank you very much,
>
> Bob
>
>
>
>
>  ----- Original Message ----
> From: Michael Foord <fuzzyman at voidspace.org.uk>
> To: Discussion of IronPython <users at lists.ironpython.com>
> Sent: Wednesday, June 11, 2008 1:29:27 PM
> Subject: Re: [IronPython] Talk to Python script from C# app...
>
> Hello Bob,
>
> The question is, do you want to run it in the same way you would launch
> any command line application from C# and collect the results from
> standard out - or do you want to embed IronPython and run the script
> 'inside' your application?
>
> If the former then you can use System.Process to launch the script with
> IronPython. You will need to download (rather than install) and launch
> the script with 'ipy.exe args...'.
>
> If the latter then how you do it depends on whether you use IronPython 1
> or 2 and what exactly your use case is.
>
> Michael Foord
> http://www.ironpythoninaction.com/
>
> Bob Rosembob wrote:
> > Hello there,
> > I have a C# application and a 3rd party Python script that the
> > application should run. The script is called periodical with some
> > arguments, performs some calculations and returns the results. I'm
> > running Vista & VS2005.
> >
> > What should I do to run the script from my application? I assume I
> > need to install IronPython on my PC. How exactly should I do it?
> >
> > Thanks for your help.
> >
> > Bob
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.ironpython.com
> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> >
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ironpython.com/pipermail/users-ironpython.com/attachments/20080612/1a0220ed/attachment.htm>


More information about the Users mailing list