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

Simon Dahlbacka simon.dahlbacka at gmail.com
Fri Jun 13 10:38:52 PDT 2008


As Curt already told you: "But your program almost certainly makes use of
parts of the standard CPython library, which you'd then have to copy over as
well."

On Fri, Jun 13, 2008 at 8:30 PM, Bob Rosembob <brosembob at yahoo.com> wrote:

> Curt,
> I copied all the files (app.exe + cycle.py + python.exe + python25.dll) to
> another PC, which doesn't have Python installed, and ran it. I got error
> saying that it can't import string module (No module named string). Any
> ideas?
>
> Thanks,
> Bob
>
> ----- Original Message ----
> From: Curt Hagenlocher <curt at hagenlocher.org>
> To: Discussion of IronPython <users at lists.ironpython.com>
> Sent: Thursday, June 12, 2008 3:18:09 PM
> Subject: Re: [IronPython] Talk to Python script from C# app...
>
> 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
>>
>>
>
>
> _______________________________________________
> 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/20080613/1ce3fe6d/attachment-0001.htm>


More information about the Users mailing list