#

#

# IronPython %IRONPYTHON_VERSION%

IronPython is a new implementation of the Python programming language on .NET. The .NET Framework is a managed programming model for Windows; Microsoft standardized part of it in ECMA years ago as the Common Language Infrastructure and C# Language Specification standards.

IronPython is fast - up to 37% faster than Python-2.6 on the standard PyStone benchmark. It supports an interactive interpreter with fully dynamic compilation. It is well integrated with the rest of the framework and makes the whole .NET Framework class library easily available to Python programmers.

The best place to learn more about IronPython is the official website. There you'll find links to our CodePlex site which includes IronPython sources, binaries, and samples. You can also file bugs and generally interact with the IronPython team through this shared project site. Finally, there's a mailing list you can join for discussing issues and releases if you like.

There's a good introductory tutorial at IronPython Tutorial.

IronPython has a high degree of compatibility with CPython, but there are some differences. See IronPython Differences document for details.

IronPython %IRONPYTHON_VERSION% is suitable for building Python applications where you want to make use of .NET Framework and pure python modules. There are still some missing standard CPython libraries (See IronPython Differences for details.), and there are some known issues with the IronPython implementation (see www.codeplex.com/ironpython).

## Prerequisites

To run, IronPython %IRONPYTHON_VERSION% requires .NET Framework version 4.0 to be installed on your system. You can install the latest version from Microsoft:

- Microsoft .NET Framework Version 4.0

IronPython should also run on any platform that implements the CLI specification v4.0.

There are more prerequisites if you want to build IronPython from source.

## Running IronPython

If you did not download the binaries, you'll need to build IronPython first. After building IronPython or unpacking the binary distribution, you can complete the installation by adding the IronPython installation directory to your PATH. To test the installation, you should launch the interactive interpreter as shown below:

>     C:\IronPython>ipy
>     IronPython 2.7.0 on .NET 4.0.30319.1
>     Type "help", "copyright", "credits" or "license" for more information.
>     >>> 2+2
>     4

You can use IronPython to run Python scripts by passing the script name on the command-line just as with standard Python. If hello.py had the displayed contents, the following ipy command line would run it:

>     Hello.py:

>     for i in xrange(3):
>         print "Hello World"

>     C:\IronPython>ipy Hello.py
>     Hello World
>     Hello World
>     Hello World

This simple example shows how you can start using WinForms from IronPython:

>     C:\IronPython>ipy
>     IronPython 2.7.0 on .NET 4.0.30319.1
>     Type "help", "copyright", "credits" or "license" for more information.
>     >>> import clr
>     >>> clr.AddReference("System.Windows.Forms")
>     >>> import System.Windows.Forms as WinForms
>     >>> WinForms.MessageBox.Show("Hello", "Hello World")
>     OK

For more information on the clr.AddReference function, see the Loading .NET Libraries exercise in the IronPython Tutorial, which has many examples of using IronPython in various ways.

## IronPython in Silverlight

### ATTENTION!

See ironpython.net/browser for the most up-to-date information on using Python in the browser with Silverlight. For example, this HTML page hosts Silverlight to run Python code, and requires no extra dependencies:

>     <html>
>       <head>
>         <script type="text/javascript"
>                 src="http://gestalt.ironpython.net/dlr-latest.js"></script>
>       </head>
>       <body>
>         <div id="message">Loading ...</div>
>         <script type="text/python">
>           document.message.innerHTML = "Hello from python!"
>           def on_click(obj, args):
>               obj.innerHTML = "Clicked!"
>           document.message.events.onclick += on_click
>         </script>
>       </body>
>     </html>

Keep in mind the information, binaries, and examples in this package will still help you build Silverlight applications with IronPython, but using HTML script-tags is the preferred model going forward; the ways described here will be deprecated in a future release.

### Generating an application

>     script\sl python MyApp

Will create "MyApp" in the current directory.

For more information on the "server" script, run `script\server`

### Running an app

>     script\server /b:MyApp\index.html

This will launch the default browser pointed at the application.

## Building IronPython from Source

If you downloaded the binaries from www.codeplex.com/ironpython, you do not need to build it. To compile IronPython from the source code, you can install either Visual Studio 2010 or .NET Framework 4.0 using one of the following links:

- Microsoft .NET Framework Version 4.0
- Visual Studio 2010

### Building using Visual Studio 2010

Open IronPython.sln in Visual Studio 2010 and build (from menu: Build->Build Solution). Set IronPythonConsole as your startup project in the Solution Explorer.

### Building using .NET Framework 4.0

.NET Framework 4.0 comes with the C# compiler and Microsoft's msbuild. After installing .NET, open any command prompt, cd to the IronPython directory, and execute:

>     %SystemDrive%\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild Solutions\IronPython.sln

This will build all required Dynamic Language Runtime and IronPython assemblies which include but are not limited to: IronPython.dll, IronPython.Modules.dll, Microsoft.Scripting.dll, Microsoft.Dynamic.dll, Microsoft.Scripting.Debugging.dll, ipy.exe, and ipyw.exe.