[Ironpython-users] IPY 2.7.2.1. Using pyc.py for standalone exe

Slide slide.o.mix at gmail.com
Thu Mar 15 16:40:02 CET 2012


I also need to add in a try/catch around the call to the Python module and
output better error messages. :-)

On Thu, Mar 15, 2012 at 8:16 AM, Dominique de Waleffe
<ddewaleffe at gmail.com>wrote:

>
> Will try your suggestion and I will also spend a bit of time to construct
> the list of needed dependencies so that pyc can do a better job...
>
> Will also file an issue later on today.
>
>
> D.
> ############################
> # Dominique de Waleffe
> # ddewaleffe -at- gmail -dot- com
> # domi -at- dewaleffe -dot- org
> ############################
>
>
> On Thu, Mar 15, 2012 at 3:24 PM, Slide <slide.o.mix at gmail.com> wrote:
>
>> There is no need to use the CPython stdlib, the IP installer comes with a
>> stdlib that has some mods for it to work better. Check the Lib directory
>> where you installed IP. Also, you can set IRONPYTHONPATH to have it find
>> things.
>> On Mar 15, 2012 5:49 AM, <mchalkley at mail.com> wrote:
>>
>>>  Thursday, March 15, 2012, 3:49:36 AM, you wrote:
>>>
>>>
>>>  I am not sure whether this should be expected to work or not, nor if I
>>> am using this correctly...
>>>
>>> I tried to generate a standalone exe for a tool I have (3 modules) but
>>> it bombs out at startup with:
>>>
>>> Unhandled Exception: IronPython.Runtime.Exceptions.ImportException: No
>>> module named os
>>>    at DLRCachedCode.__main__$1(CodeContext $globalContext, FunctionCode
>>> $functionCode)
>>>    at IronPython.Compiler.OnDiskScriptCode.Run()
>>>    at IronPython.Runtime.PythonContext.InitializeModule(String fileName,
>>> ModuleContext moduleContext, ScriptCode scriptCode, ModuleOptions options)
>>>    at IronPython.Runtime.ModuleLoader.load_module(CodeContext context,
>>> String fullName)
>>>    at
>>> Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame
>>> frame)
>>>    at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame
>>> frame)
>>>    at
>>> Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0,
>>> T1 arg1, T2 arg2, T3 arg3)
>>>
>>> I can reproduce with this simple foo.py module
>>>
>>> # foo.py
>>> import os
>>> print "Hello"
>>> print "OS:",os.name
>>> print "Bye"
>>> #end foo.py
>>>
>>> which I compile with the following:
>>>
>>>     ipy -m pyc /standalone /main:foo.py /target:exe /out:foo
>>> or
>>>     ipy -m pyc /main:foo.py /target:exe /out:foo2
>>>
>>> Starting either foo.exe or foo2.exe fails with above error.
>>>
>>> If I remove the import os and the line that uses on.name, I get an
>>> executable that works...
>>>
>>> Is this a bug or a misunderstanding in what I expect to work?
>>> If so what are the correct steps?
>>>
>>> Thanks for your help
>>>
>>> D.
>>>
>>> ############################
>>> # Dominique de Waleffe
>>> # ddewaleffe -at- gmail -dot- com
>>> # domi -at- dewaleffe -dot- org
>>> ############################
>>>
>>> I'll try to help, since I got a lot of help with something similar
>>> recently.  Congratulations - you got further before asking for help than I
>>> did...
>>>
>>> It seems that you don't have the path to your CPython directory in your
>>> environment variables.  I thought installing IronPython automatically set
>>> those variables, but maybe CPython got moved or something?  In any case,
>>> you can add it like this:
>>>
>>> import sys
>>> sys.path.append(r"c:\python24\lib")
>>>
>>> And if you plan on distributing the exe to another machine that doesn't
>>> have CPython installed, you need to put a copy of all the modules your
>>> script needs in a zip file located in the same directory as the exe and put
>>> the line
>>>
>>> sys.path.append('zipfile.zip')
>>>
>>> in your script before importing those modules...
>>>
>>> Mark
>>>
>>> _______________________________________________
>>> Ironpython-users mailing list
>>> Ironpython-users at python.org
>>> http://mail.python.org/mailman/listinfo/ironpython-users
>>>
>>>
>


-- 
Website: http://earl-of-code.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20120315/fd4a411c/attachment.html>


More information about the Ironpython-users mailing list