2009-07-29 8 views
6

J'ai besoin de porter du code qui dépend fortement de lxml d'une application CPython vers IronPython. Lxml est très Pythonic et je voudrais continuer à l'utiliser sous IronPython, mais cela dépend de libxslt et de libxml2, qui sont des extensions C.Comment faire fonctionner lxml sous IronPython?

Est-ce que quelqu'un sait d'une solution de contournement pour autoriser lxml sous IronPython ou une version de lxml qui n'a pas ces dépendances C-extension?

Répondre

1

Quelque chose que vous pourriez avoir déjà envisagé:

Une alternative est de premier port de la bibliothèque lxml à ipy puis votre code (en fonction de la taille du code). Il se peut que vous deviez écrire des wrappers C# pour les appels C natifs vers les extensions C - je ne suis pas sûr des problèmes, le cas échéant, liés à IPy.

Ou si le code que vous portez est petit, par rapport à lxml, alors peut-être vous pouvez simplement supprimer la dépendance lxml et utiliser les bibliothèques XML .NET.

+1

Merci pour cette information, en ce moment, nous envisageons sérieusement le dumping lxml et aller pour. NET XML parce que nous ne pouvons tout simplement pas utiliser d'extensions C du tout. –

2

Vous pouvez consulter IronClad, qui est un projet open source destiné à rendre les extensions C pour Python disponibles dans IronPython.

+0

Merci pour votre réponse et votre temps, je voudrais pouvoir utiliser IronClad et cela fonctionnerait probablement dans la plupart des cas. Malheureusement, mon code fonctionnera comme un script IronPython embarqué dans un serveur ASP.net et je ne peux utiliser aucune extension native, même si je pouvais y accéder. –

+0

Je ne suis pas un développeur IronPython ou Python expérimenté; Je suis un développeur .Net qui passe son temps à IronPython. Pardonne-moi l'ignorance ici. Il semble que lxml soit une API plutôt riche, il sera donc difficile à répliquer. Une idée que j'avais était d'essayer de répliquer les parties de l'API lxml que vous utilisez actuellement. Vous pouvez regarder un projet comme http://devhawk.net/2008/05/06/Stream+Processing+XML+In+IronPython.aspx pour un point de départ. –

Questions connexes