IronPython

Implementierung der Programmiersprache Python für die Common-Language-Infrastructure

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

IronPython

Basisdaten
Erscheinungsjahr: 5. September 2006
Designer: Jim Hugunin
Entwickler: Jim Hugunin, Microsoft
Aktuelle Version 3.4.1[1][2] (12. Juli 2023)
Aktuelle Vorabversion: 3.4.0-beta1[3]  (01. Mai 2022)
Betriebssystem: Plattformunabhängig
Lizenz: Apache-Lizenz 2.0
ironpython.net

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 ausgeliefert. Es lassen sich jedoch sämtliche Module einer CPython-Installation laden, solange diese keine kompilierten 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 3.4.1. 12. Juli 2023 (abgerufen am 5. August 2023).
  2. ironpython.net. 12. Juli 2023 (abgerufen am 20. März 2024).
  3. Release 3.4.0-beta1 auf github.com
Bearbeiten
  NODES
design 1