Tu banner alternativo

IronPython

In der heutigen Welt ist IronPython ein Thema, das die Aufmerksamkeit von Menschen jeden Alters und aller Interessen auf sich gezogen hat. Von Akademikern und Fachexperten bis hin zu denen, die einfach nur allgemeine Informationen suchen, ist IronPython zu einem entscheidenden Bezugspunkt in der modernen Kultur geworden. Mit seinen Auswirkungen auf verschiedene Aspekte der Gesellschaft hat IronPython Debatten, Diskussionen und Überlegungen ausgelöst, die versuchen, seine Relevanz im aktuellen Kontext zu verstehen. In diesem Artikel werden wir die verschiedenen Blickwinkel von IronPython von seinem Ursprung bis zu seiner Entwicklung untersuchen, um Licht auf eines der aktuell relevantesten Themen zu werfen.

Tu banner alternativo
IronPython

Basisdaten
Erscheinungsjahr: 5. September 2006
Designer: Jim Hugunin
Entwickler: Jim Hugunin, Microsoft
Aktuelle Version 3.4.2[1] (20. Dezember 2024)
Aktuelle Vorabversion: 3.4.0-beta1[2]  (01. Mai 2022)
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 je nach Version 2 oder 3 im Sprachumfang kompatibel zu CPython 2.7 bzw. 3.x, 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

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));
    }
}

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

  • 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

  1. Release 3.4.2. 20. Dezember 2024 (abgerufen am 24. Dezember 2024).
  2. Release 3.4.0-beta1 auf github.com