[IronPython] Two Problems with sys.argv and compiled scripts

Bruce Bromberek bruce.bromberek at gmail.com
Mon Mar 23 15:52:16 PDT 2009


So if I follow your lead at
http://www.voidspace.org.uk/ironpython/custom_executable.shtml

it looks like I need to modify this code to call my complied DLL instead of
the pythonsource code?

            string path = Path.Combine(
                Path.GetDirectoryName(Application.ExecutablePath),
                                      "main.py");
            engine.ExecuteFile(path);

Is that right?  My end goal it to produce an exe that I can wrap up into an
installer and distribute to people without ironpython installed.

Once I get a working example, I'll post a detailed explanation back to this
group for the benefit of the others coping with the transition from
IronPython 1.0 to 2.0.


Thanks in advance


-WombatPM

PS  If you tell me that your book has all of the detail, I'll get the early
access version ASAP.




On Mon, Mar 23, 2009 at 4:16 PM, Michael Foord <fuzzyman at voidspace.org.uk>wrote:

> Bruce Bromberek wrote:
>
>> Problem #1
>> I know this is a know issue, but my google-fu has been able to uncover the
>> solution.  When I compile my script into an exe , sys.argv get sets to ' '.
>>
>> Using SharpDevelop and Ironpython 2.0.1
>>
>> #Program.py
>> #
>> import clr
>> clr.AddReference('mscorlib')
>> clr.AddReference('System')
>> import sys
>> import System
>>
>> if __name__ == 'Program':
>>    try:
>>        print "sys.argv = ",sys.argv
>>    except System.Exception, e:
>>        print e
>>
>> yeilds output of
>> C:\Program Files\IronPython 2.0.1\Samples\pyc>Program.exe fred
>> sys.argv =  ['']
>>
>> instead of the expected
>> sys.argv['fred']
>>
>> Problem #2:
>>
>> If I drag and drop a file onto the exe, I get a exception message that I
>> can't see.  In IronPython 1.0, the dropped file would populate sys.argv
>>
>> Hopefully someone can answer or direct me to better source.
>>
>
>
> Creating a custom C# executable that embeds the IronPython engine, starts
> your application, and populates sys.argv is the best workaround for these
> problems.
>
> Michael
>
>
>> -WombatPM
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>
>
> --
> http://www.ironpythoninaction.com/
> http://www.voidspace.org.uk/blog
>
>
> _______________________________________________
> 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/20090323/e2ee112f/attachment-0001.htm>


More information about the Users mailing list