Blog (29)
Komentarze (476)
Recenzje (0)
@iluzionIronPython + Eclipse

IronPython + Eclipse

04.03.2012 19:29

Ukazała się wersja release candidate IronPythona 2.7.2. Wydanie wersji stabilnej zaplanowano za tydzień. Jest to dobra okazja, by przyjrzeć się tej wersji Pythona, ponieważ wprowadzono w niej kilka istotnych nowości.

Kilka słów o IronPython

IronPython to pełnoprawna implementacja języka Python napisana w C#, zapewniająca pełną integrację z platformą .NET Framework i Mono. W porównaniu do podstawowej implementacji (CPython) charakteryzuje się:

  • dostępem do bogatych zasobów bibliotek standardowych .NET Framework
  • dostępem do zewnętrznych bibliotek dll dla .NET za pomocą modułu clr
  • wsparciem dla technologii Silverlight
  • brakiem Globalnej Blokady Interpretera (GIL ), dzięki czemu aplikacje wielowątkowe wykorzystują możliwości procesorów wielordzeniowych
  • łatwą kompilacją plików py do samodzielnych plików exe (Tools\Scripts\pyc.py)
  • mniejszymi rozmiarami aplikacji w porównaniu do tych budowanych przy pomocy py2exe czy cx_freeze dla CPythona

Co nowego w IronPython 2.7.2?

Zmiana drugiej cyfry po przecinku wiąże się z wprowadzeniem kilku nowości. IronPython nie tylko umożliwia korzystanie z bibliotek .NET. Dostarczany jest wraz z nim duży zasób bibliotek standardowych znanych z CPython. Wśród nich można znaleźć m.in. moduły sys, os, re, math, thread, socket, itertools, email, xml.etree, a od niedawna również csv. Dzisiejsze wydanie roszerza zestaw o moduły zipimport oraz sqlite3.

Od tego wydania możliwe jest również budowanie samodzielnych aplikacji exe przy pomocy pyc.py, zawierających wszystkie niezbędne biblioteki, które wcześniej trzeba było kopiować do folderu z programem.

Ponadto wersja 2.7.2 wspiera .NET 3.5, .NET 4, Silverlight 4, Silverlight 5, Mono for Android 4.0 i Windows Phone 7.5.

Programowanie w IronPython

Programowanie w IronPython można rozpocząć zaraz po instalacji korzystając z interaktywnej konsoli dostępnej z poziomu menu Start. Przydatny będzie również jakikolwiek edytor kolorujący składnię języka Python. Bardziej wymagający programiści mogą skorzystać ze zintegrowanych środowisk programistycznych takich jak Visual Studio z pluginem Python Tools for Visual Studio lub Eclipse z wtyczką PyDev.

IronPython + Eclipse

Konfiguracja Eclipse jest bardzo prosta i sprowadza się do kilku kroków. W tym wpisie chciałbym głównie zwrócić uwagę na pewną kwestię dotyczącą stosowania zewnętrznych bibliotek dll.

Eclipse wymaga do działania Javy. Środowisko pobieramy w postaci pliku zip i wypakowujemy w dowolnym miejscu na dysku, a następnie uruchamiamy pliki eclipse.exe. Warto utworzyć skrót do tego pliku. Następnie instalujemy PyDev, wybierając z menu Help > Install New Software... (szczegóły instalacji dostępne na stronie projektu PyDev).

Kolejnym krokiem jest dodanie interpretera IronPython. Tworzymy nowy projekt wybierając z menu File > New > PyDev Project, a następnie zaznaczamy jako typ projektu IronPython i klikamy Click here to configure an interpreter not listed.

408805

W oknie Iron Python Interpreters klikamy przycisk New, podajemy nazwę interpretera, np. IronPython 2.7.1 oraz wskazujemy plik ipy.exe (plik ten znajduje się w folderze C:\Program Files (x86)\IronPython 2.7.1, o ile nie zmieniono domyślnej lokalizacji podczas instalacji). Klikamy OK i mamy środowisko gotowe do pracy.

408807

Korzystanie z zewnętrznych bibliotek

Korzystanie z bibliotek zewnętrznych omówię na przykładzie biblioteki iText, służącej do generowania dokumentów PDF. Wersję dla .NET można pobrać ze strony iTextSharp.

W pliku zip znajdziemy itextsharp.dll. Plik ten umieszczamy w dowolnym miejscu na dysku.

UWAGA

Nazwa pliku itextsharp.dll jest inna niż przestrzeń nazw wykorzystywana w języku C#.

using iTextSharp.text;
using iTextSharp.text.pdf;

Aby możliwe było korzystanie z biblioteki w IronPythonie należy zmienić nazwę pliku dll na taką jaka wykorzystywana jest przy jej importowaniu!

W tym przypadku nazwę należy zmienić na iTextSharp.dll. Powracamy do okna Iron Python Interpreters i podajemy lokalizację biblioteki wskazując folder, w którym się ona znajduje. Zatwierdzamy zmiany i ponownie uruchamiamy Eclipse.

408816

Czas przetestować bibliotekę. W tym celu dodajemy nowy plik projektu (PyDev Module) i wklejamy poniższą zawartość:

# -*- coding: utf-8 -*-

from System.IO import FileStream, FileMode

import clr
clr.AddReferenceToFileAndPath('iTextSharp.dll')

from iTextSharp.text import Document
from iTextSharp.text import Paragraph
from iTextSharp.text import Font 
from iTextSharp.text.pdf import PdfWriter
from iTextSharp.text.pdf import BaseFont

bfVerdana = BaseFont.CreateFont('C:\Windows\Fonts\Verdana.ttf', BaseFont.IDENTITY_H, True)
verdana = Font(bfVerdana, 12, Font.ITALIC)

document = Document()
PdfWriter.GetInstance(document, FileStream('itest.pdf', FileMode.Create))
document.Open()
document.Add(Paragraph('Ten blog jest żółty!', verdana))
document.AddAuthor('Krystian')
document.Close()

Przy okazji podany został przepis na prawidłowe wyświetlanie m.in. polskich znaków w plikach PDF generowanych przy pomocy iTextSharp.

Miłego kodowania!

Wybrane dla Ciebie
Komentarze (9)