IronPython unter Eclipse 3.5 mit PyDev - Veni, vidi, vici

Das neue .NET Framework 4.0 wird gut. Es wird sogar sehr gut! Am meisten freue ich mich auf die dynamischen Erweiterungen, die ich bereits in meinem Ausblick  Le Parkour .NET im Fazit als das Kernelement beschrieben habe C# und VB.NET können dann mit IronPython und IronRuby kommunizieren. Möglich macht es das Schlüsselwort dynamic. Mehr als einmal in der Bloggersphäre beschrieben, darum hier keiner weiteren Erwähnung wert. Python und Ruby sind mit Silverlight First-Class-Citizens of .NET geworden. Aber wo bleibt das Tooling dafür?

Vorgeschichte

In Anbetracht dessen, dass IronPython mit Version 2.6 schon in die dritte Runde geht und mit .NET 4.0 sogar offiziellen Einzug in das Framework erhält, ist schon etwas beschämend zu sehen, wie ein Ecosystem wie Visual Studio 2010 keine native Unterstützung für IronPython bietet. Aber zurück zur Vorgeschichte … den Anfang machte damals mit IronPython 1.0 das IronPython Studio 1.0 von Clarius Consulting auf Codeplex. Es erschien IronPython 2.0, aber das Studio wurde leider nicht angepasst. Die Unterschiede zwischen den Versionen sind beachtlich, was die .NET integration angeht. Das ist es ja, was uns interessiert. Wer einfach nur ein bischen Syntaxhighlighting haben will, dem genügt wohl die Installation der veralteten Version. Somit könnte ich aber auch auf jede andere IDE für Python wechseln, oder gar Notepad++ benutzen. Mit .NET 4.0 erscheint nun Version 2.6, die es bereits als BETA 2 zum Download gibt. Michael Ford aka Fuzzyman aka voidspace hat auf Microsoft Connect zur Unterstützung von IronPython in VS2010 aufgerufen.

Warum Python

Wer sich wie ich einige Zeit mit Python beschäftigt wird vermutlich schnell die Vorzüge einer solchen dynamischen Sprache kennen lernen – benutze ich Python nun schon zum zweiten mal in meiner Entwicklerzeit. Wobei natürlich die größte Freiheit auch die größte Last ist. Dynamische Freiheit wird z.B. durch das fehlen der statischen Typsicherheit erkauft. Dafür muss man wie im Ruby Lager dann strikter den TDD/BDD Ansatz verfolgen um auf Fehlerfreiheit zu validieren. Dieses Vorgehen sollte ohnehin auch mit C# verfolgt werden.

Toolunterstüzung

Nun aber mal zum Punkt und zum Inhalt meiner Headline. Das Tooling für IronPython ist im Moment von dem eines C# leider noch weit entfernt. Gute IDEs für Python wie Wing machen da schon einen guten Anfang. Aber den Überflieger im Python-IDE-Hangar stellt zur Zeit … Eclipse dar. Ja ganz  genau, die JAVA IDE ist zur Zeit die beste Entwicklungsumgebung für die .NET Sprache IronPython.

Ich benutze für CPython Eclipse mit PyDev ab und an schon seit knapp 4 Monaten, aber für IronPython war es bis vor kurzem noch nicht konfigurierbar. Aufmerksam auf die neue Version bin ich über einen Blogbeitrag von Michael Ford geworden, den er aus dem Russischen Beintrag übersetzt hat – wohl mit Google Code. Und was soll ich sagen, es funktioniert. Und das wichtigste ist, dass auch für die .NET Assembys Code Completition zur Verfügung steht – wie ich es eben erwarte.

Das ganze sollte auch über Aptana funktionieren,das ebenfalls auf Eclipse basiert und ihr direkt unter http:/www.aptana.com herunter laden könnt. Ich habe mich direkt für Eclipse entschieden, weil in dem Packetmanager nur die Version 1.4.6 von PyDev zu sehen war. Verwundert mich etwas, zumal PyDev mittlerweile offiziell von Aptana gepflegt wird Wie ihr alles einrichten müsst und worauf zu achten ist, will ich euch nun erklären. So sieht auf jeden Fall das Fertige Ergebnis später aus.

image

Bevor es losgeht.

Wie auf dem Screenshot zu sehen ist, verwende ich ein dunkles Farbschema. An alle Dark Theme Liebhaber; ich habe mir das Green Chad Farbschema geladen und PyDev mit den entsprechenden Farben angepasst. Für diejenigen, die sich die Konfiguration ersparen wollen, ladet euch einfach meine Konfiguration von meinem LIVE-Space, da es für PyDev auch in Aptana leider noch keine Xml Konfigurations Dateien gibt. Als netten Nebeneffekt habt ihr, wenn ihr Aptana als Plugin mitinstalliert einen sehr guten Editor für PHP, JavaScript, HTML,CSS, AIR, iPhone, …. die Liste ist unendlich. Einlesen könnt ihr die Einstellungen über File->Import. Wenn ihr in die gleichen Pfade installiert, dann könnt ihr den Schritt Konfiguration eigentlich auch Überspringen. Habe ich selbst aber nicht probiert, daher bitte überprüfen.

Ans Eingemachte

Erklärung anhand der englischen Pakete.

Downloads

  1. IronPython BETA 2
  2. Eclipse 3.5 (Galileo). Ich habe die Version für RCP/Plug-ins genommen)
  3. PyDev ab Version 1.4.7. Ich nutze die aktuelle Version 1.4.8. Hier gibt es neben PyDev auch noch die kostenpflichtigen Extensions (Version 1.4.8), die einiges an Funktionalität mehr bieten. Mylin Implementierung befindet sich ebenfalls dort.
  4. (optional Aptana als Eclipse Plugin gleich mitinstallieren, dazu erst einmal herunterladen. Beim Download bitte bei Steip 1 beachten, die ComboBox Auswahl auf Eclipse Plugin zu stellen.)

Installation

  1. IronPython installieren – bei mir unter Windows 7 RC1 c:\Program Files (x86)\IronPython 2.6. Optional das Verzeichnis gleich mit unter PATH eintragen. Mache ich gerne um auch über die Console schnell heran zu kommen.
  2. Das Eclipse Archiv entpacken – bei mir im Homeverzeichnis unter C:\Users\Rainer\dev\eclipse\
  3. Das PyDev Archiv ins Verzeichnis eclipse\dropins entpacken – bei mir unter C:\Users\Rainer\dev\eclipse\dropins. Beim entpacken enstehen zwei Verzeichnisse: feature und plugins.
  4. (optinal das Aptana Studio Plugin installieren.
    1. Beim ersten Start von Eclipse landet man auf dem Homescreen. Den müsst ihr über den Button Workbench am rechten Rand in der Mitte verlassen, falls ihr Eclipse zuvor noch nicht benutzt habt
    2. Über das Menü Help->Install New Software den Installation Assistenten aufrufen.
    3. Im jetzt angezeigten Dialog Install auf Add klicken.
    4. Jetzt im Fenster Add Site auf den Button Archive
    5. Das Aptana Studio Plugin Archiv auswählen – bei mir com.aptana.ide.feature.studio-1.5.1.025914-57J37FRWVV3S_z-lWprtymEDiz00.zip
    6. Mit Ok bestätigen und dem Installationsverlauf folgen.

Konfiguration

  1. Mein Settingsfile laden, wenn ihr das Farbschema wollt. Da ich es noch nicht ausprobiert. Es werden sonst, wenn dieser Schritt zum Schluss gemacht wird, eure Einstellungen überschrieben.
  2. Die Einstellungen über Window->Preferences aufrufen
  3. Den Knoten PyDev im Konfigurationsbaum aufklappen und den Punkt Interpreter – IronPython auswählen (siehe Screenshot
    image 
    Abbildung 1 – IronPython einrichten
  4. Auf den Button Auto Config klicken (siehe Abbildung 1)
  5. Sollte IronPython nicht gefunden werden über Add manuel hinzufügen
  6. WICHTIG: Kommandozeilenparameter einstellen. Auf jeden Fall braucht ihr X:Frame bzw. X:FullFrame und X:MTA. Bei mir lief IronPython mit Single Threaded Appartment nicht. Ich nutze folgende Optionen (siehe auch Abbildung 1)
    -X:MTA -X:FullFrames -X:AutoIndent -X:ColorfulConsole -X:TabCompletion -X:PrivateBinding -X:ExceptionDetail -X:ShowClrExceptions

Fazit

Ab sofort steht euch CodeCompletition und noch viel mehr zur Verfügung. Eigene Assemblys die nicht aus dem Framework sind können über Project->Properties->PyDev – PYTHONPATH hinzugefügt werden. Einen guten Überblick der PyDev Funktionalität findet ihr auf der PyDev Homepage unter http://pydev.sourceforge.net/features.html

Ich hoffe Micorosoft verschläft es nicht und holt sich mit Visual Studio als IDE für IronPython wieder die Krone. Wie so oft muss erst einmal wieder jemand aus dem OpenSource Lager kommen und zeigen wie es geht. Das lustige daran ist, dass es Microsoft diesmal sogar bei einem eigenen OpenSource Projekt passiert, das zudem auch noch offiziellen Einzug ins Framework findet. JAVA strikes back ;-)

DotNetKicks-DE Image
Published Sonntag, 30. August 2009 00:24 von Rainer Schuster
Abgelegt unter: , , ,

Kommentare

# Twitter Trackbacks for IronPython unter Eclipse 3.5 mit PyDev - Veni, vidi, vici - Rainer Schuster [dotnet-forum.de] on Topsy.com

Ping Antwort von  Twitter Trackbacks for                 IronPython unter Eclipse 3.5 mit PyDev - Veni, vidi, vici - Rainer Schuster         [dotnet-forum.de]        on Topsy.com

# IronPython unter Eclipse 3.5 mit PyDev

Montag, 7. September 2009 17:43 von dotnet-kicks.de

Sie wurden gekickt (eine gute Sache) - Trackback von dotnet-kicks.de

# re: IronPython unter Eclipse 3.5 mit PyDev - Veni, vidi, vici

Samstag, 30. Januar 2010 14:56 von kraeMit

Der Link zu der Konfiguration von dem LIVE-Space ist nicht mehr gültig.

Würde die Konfiguration gerne testen.

Gruß

kraeMit

-> dotnet-forum.de at kraemit dot de

# re: IronPython unter Eclipse 3.5 mit PyDev - Veni, vidi, vici

Montag, 1. Februar 2010 12:48 von Rainer Schuster

Der Link funktioniert bei mir ohne Probleme. Mit deiner LIVE ID eingeloggt?

# re: IronPython unter Eclipse 3.5 mit PyDev - Veni, vidi, vici

Freitag, 25. Februar 2011 16:30 von proofy

Unter Mac OS muss man die ipy.exe über mono aufrufen und das kann man bei Eclipse über die GUI nicht einstellen. Eclipse erwartet hier eine exe, um diese zu untersuchen. Es ist auch unter MacOS sinnvoll diese exe (im Mono Paket)zunächst auch einzutragen, um die nötigen Abhängigkeiten gleich eintragen zu lassen. Danach muss man in die Tiefen der Eclipse Konfigurationsdateien einsteigen und das Shellscript von Hand einsetzten. In der Datei

workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.python.pydev.prefs

sollte an der Stelle der ipy.exe dann das shell Skript eingetragen werden, z.B.:

IRONPYTHON_INTERPRETER_PATH=Name\:/Library/Frameworks/Mono.framework/Versions/2.8.2/bin/ipy\:EndName\:Version2.4Executable\:/Library/Frameworks/Mono.framework/Versions/2.8.2/bin/ipy

Kommentar abgeben

(verpflichtend) 
(verpflichtend) 
(optional)
(verpflichtend)