2009-07-29 17 views
6

Muszę przesłać trochę kodu, który w dużym stopniu opiera się na lxml z aplikacji CPython do IronPython.Jak uzyskać obsługę lxml pod IronPythonem?

lxml jest bardzo Pythonic i chciałbym go używać w IronPython, ale zależy to od libxslt i libxml2, które są rozszerzeniami C.

Czy ktoś wie o obejściu, aby zezwolić na użycie lxml w IronPython lub w wersji lxml, która nie ma tych zależności C-Extension?

Odpowiedz

1

Coś, co można już uznać:

Alternatywą jest pierwszym portem biblioteki lxml do IPY a następnie kod (w zależności od wielkości kodu). Być może będziesz musiał napisać kilka wrapperów C# dla macierzystych wywołań C do rozszerzeń C - nie jestem pewien, jakie problemy, jeśli w ogóle, są w to zaangażowane w odniesieniu do IPy.

Lub jeśli kod, który portujesz jest mały, w porównaniu do lxml, to możesz po prostu usunąć zależność lxml i użyć bibliotek XML .NET.

+1

Dzięki za te informacje, teraz poważnie rozważamy wyrzucenie lxml i przejście do .NET XML, ponieważ w ogóle nie możemy używać rozszerzeń C. –

2

Możesz sprawdzić IronClad, który jest projektem o otwartym kodzie źródłowym, którego celem jest udostępnienie rozszerzeń C dla Python w IronPython.

+0

Dziękuję za odpowiedź i za poświęcony czas, chciałbym móc użyć programu IronClad i prawdopodobnie zadziała w większości przypadków. Niestety, mój kod będzie działał jako osadzony skrypt IronPythona na serwerze ASP.net i nie będę mógł w ogóle używać żadnego natywnego rozszerzenia, nawet jeśli będę mógł uzyskać do nich dostęp. –

+0

Nie jestem doświadczonym programistą IronPython lub Python; Jestem programistą .Net, który pasjonuje się IronPythonem. Przebacz mi niewiedzę tutaj. Wygląda na to, że lxml jest raczej bogatym API, więc będzie trudny do skopiowania. Pomysł polegał na próbie replikacji tych części interfejsu API lxml, z których obecnie korzystasz. Możesz przyjrzeć się projektowi takim jak http://devhawk.net/2008/05/06/Stream+Processing+XML+In+IronPython.aspx dla punktu wyjścia. –

Powiązane problemy