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

Slide slide.o.mix at gmail.com
Thu Mar 15 15:24:20 CET 2012


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20120315/beeff064/attachment.html>


More information about the Ironpython-users mailing list