IronPython

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
IronPython
Erscheinungsjahr: 2006
Entwickler: Jim Hugunin, Microsoft
Aktuelle Version: 2.7.4[1]  (7. September 2013)
Betriebssystem: Plattformunabhängig
Lizenz: Apache-Lizenz 2.0
ironpython.net

IronPython ist eine Implementierung der Programmiersprache Python für die Common-Language-Infrastructure (CLI) bzw. damit kompatible Laufzeitumgebungen wie z. B. Mono.

IronPython ist vollständig in C# geschrieben und wird im Rahmen der Apache-Lizenz 2.0 bereitgestellt. IronPython ist im Sprachumfang kompatibel zu CPython 2.7, wird aber ohne die Python-Standard-Bibliothek (siehe Weblinks) ausgeliefert. Es lassen sich jedoch sämtliche Module einer CPython-Installation laden, solange diese keine kompilierte Bibliotheken benötigen. Zugriff auf .NET-Assemblies ist uneingeschränkt möglich.

In IronPython erstellte Programme lassen sich sowohl interpretieren als auch just-in-time in ausführbare Dateien übersetzen. Wie in .NET üblich, kann man mit IronPython auf Bibliotheken zugreifen die in anderen .NET-Sprachen geschrieben wurden, ebenso wie diese mit Einschränkungen auf in IronPython geschriebene Bibliotheken zugreifen können.

Die IronPython-Umgebung kann als eine Skriptsprache zum Automatisieren einer .NET-Anwendung genutzt werden. Dabei wird die Laufzeitumgebung in die .NET-Anwendung eingebunden. Es können beliebige Objekte an das Skript übergeben werden, was z. B. für Spieleerweiterungen oder Plug-in-Entwicklungen sinnvoll ist.

Beispiele[Bearbeiten]

Eine Ausgabe ohne .NET-Bibliothek:

print "Hallo Welt!"

Das gleiche Beispiel, diesmal mit einer „internen“ .NET-Bibliothek:

from System import Console
 
Console.WriteLine("Hallo Welt!")

Und einmal mit Hilfe einer „externen“ .NET-Bibliothek, wobei die MyLib.dll in einer beliebigen anderen .NET-Sprache (z. B. C#, Visual Basic .NET oder C++/CLI) geschrieben sein kann:

import clr
clr.AddReferenceToFile("MyLib.dll")
from MyLib import Out
 
Out.Print("Hallo Welt!")

IronPython in C# einbinden (z. B. als Taschenrechner):

using System;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
 
public class Eval
{
    public static void Main(string[] args)
    {
        ScriptEngine se = Python.CreateEngine();
        Console.WriteLine(se.Execute(args[0]));
    }
}

Angenommen das C#-Programm liegt als eval.exe kompiliert vor und die IronPython-Laufzeitbibliotheken IronPython.dll und IronMath.dll (z. B. in demselben Verzeichnis) sind vorhanden, können beliebige Python-Ausdrücke ausgewertet werden:

 C:\> eval.exe 2+2
 4
 
 C:\> eval.exe 2**3
 8
 
 C:\> eval.exe 5%3
 2

In einem Tutorial, das mit dem IronPython-Paket mitgeliefert wird, ist ein Beispiel zu sehen, wie IronPython als Skriptsprache für C# benutzt werden kann.

Siehe auch[Bearbeiten]

  • Python - Die Programmiersprache Python
  • Jython - Java-Implementierung der Programmiersprache Python.
  • PyPy - Implementierung der Programmiersprache Python in Python selbst.
  • Boo - Implementierung der Python-ähnlichen Programmiersprache Boo für .NET.

Einzelnachweise[Bearbeiten]

  1. - Release: 2.7.4

Weblinks[Bearbeiten]