Zum Inhalt springen

IronPython

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 13. Dezember 2025 um 21:58 Uhr durch imported>Fagineus (Komp. zu CPython 3.x).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
IronPython
colspan="2" class="notheme" style="text-align:center; background-color:#Vorlage:Standardfarbe;" | Datei:IronPython 3 logo.svg
Datei:Ironpython-logo.png
Basisdaten
Erscheinungsjahr: Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Designer: Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Entwickler: Jim Hugunin, Microsoft
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion: 3.4.0-beta1<ref>Release 3.4.0-beta1 auf github.com</ref>  (01. Mai 2022)
Beeinflusst von: Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
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:

<syntaxhighlight lang="python"> print "Hallo Welt!" </syntaxhighlight>

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

<syntaxhighlight lang="python"> from System import Console

Console.WriteLine("Hallo Welt!") </syntaxhighlight>

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:

<syntaxhighlight lang="python"> import clr clr.AddReferenceToFile("MyLib.dll") from MyLib import Out

Out.Print("Hallo Welt!") </syntaxhighlight>

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

<syntaxhighlight lang="csharp"> 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]));
   }

} </syntaxhighlight>

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:

<syntaxhighlight lang="text">

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

</syntaxhighlight>

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

<references />

Weblinks