IronPython – how to compile exe
IronPython 2.6 ships with pyc.py (look in %IRONPYTONINSTALLDIR%\Tools\Scripts\pyc.py
), script that can be used to compile python script(s) into binary (exe). For the purpose of this mini how-to I created a directory D:\IronTestCompile
with the following contents:
D:\IronTestCompile>dir /b /oe Microsoft.Scripting.ExtensionAttribute.dll Microsoft.Scripting.dll Microsoft.Scripting.Core.dll IronPython.dll IronPython.Modules.dll Microsoft.Dynamic.dll hello2.py hello1.py pyc.py HelloWorld.py
From IronPython directory I copied all the necessary DLL’s (Microsoft*.dll, IronPython*.dll) that are needed for compilation and as run-time prerequisite to run compiled HelloWorld.exe. HelloWorld.py is my main script that imports two additional modules, hello1.py and hello2.py and pyc.py is compilation script shipped with IronPython 2.6.
Here is the contents of HelloWorld.py, hello1.py and hello2.py:
# # HelloWorld.py # IronPython - Compile test # import hello1 import hello2 print "HelloWorld from HelloWorld.py" hello1.Hello() hello2.Hello() # End # hello1.py def Hello(): print "Hello World from Hello1.py" # hello2.py def Hello(): print "Hello World from Hello2.py"
Now let’s see what we can do with pyc.py script:
D:\IronTestCompile>ipy pyc.py pyc: The Command-Line Python Compiler Usage: ipy.exe pyc.py [options] file [file ...] Options: /out:output_file Output file name (default is main_file.<extenstion>) /target:dll Compile only into dll. Default /target:exe Generate console executable stub for startup in addition to dll. /target:winexe Generate windows executable stub for startup in addition to dll. /? /h This message EXE/WinEXE specific options: /main:main_file.py Main file of the project (module to be executed first) /platform:x86 Compile for x86 only /platform:x64 Compile for x64 only Example: ipy.exe pyc.py /main:Program.py Form.py /target:winexe
And here is my command line that I used to compile console application HelloWorld.exe:
D:\IronTestCompile>ipy pyc.py hello1.py hello2.py /out:HelloWorld /main:HelloWorld.py /target:exe Input Files: hello1.py hello2.py Output: HelloWorld Target: ConsoleApplication Platform: ILOnly Machine: I386 Compiling... Saved to HelloWorld
End result of compilation are two files, HelloWorld.exe and HelloWorld.dll. Both files (plus above listes DLL’s) are needed for application to run. And here is sample output:
D:\IronTestCompile>HelloWorld HelloWorld from HelloWorld.py Hello World from Hello1.py Hello World from Hello2.py
Posted on 21.12.2009, in Scripting and tagged python, Scripting. Bookmark the permalink. Comments Off on IronPython – how to compile exe.