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.
| 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.
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.