Python und .NET Integration

8

Ich schaue mir gerade Python an, weil ich die Textanalyse-Funktionen und die nltk-Bibliothek sehr mag, aber traditionell bin ich ein .Net / C # -Programmierer. Ich denke nicht, dass IronPython ein Integrationspunkt für mich ist, da ich NLTK verwende und vermutlich einen Port dieser Bibliothek für die CLR benötige. Ich habe ein wenig Python für .NET angeschaut und habe mich gefragt, ob das ein guter Startpunkt war. Gibt es eine Möglichkeit, eine Python-Klasse in C # zu marshallen? Wird diese Lösung weiterhin verwendet? Besser noch, hat jemand das getan? Eine Sache, die ich in Betracht ziehe, ist nur ein Persistenzmedium als Vermittler zu verwenden (in Python analysieren, in MongoDB speichern und Site in .NET ausführen).

    
Trent 24.11.2009, 04:21
quelle

3 Antworten

8

NLTK ist pure-python und kann daher leicht auf IronPython ausgeführt werden. Eine Suche ergab dieses Ticket - alles, was Sie tun müssen, ist ein paar zusätzliche Python-Bibliotheken zu installieren das kommt nicht standardmäßig mit IronPython.

Dies ist wahrscheinlich der einfachste Weg für Sie, sich zu integrieren. Andernfalls müssen Sie Python entweder als Teilprozess ausführen, was komplex klingt, oder Python als Server ausführen, der Ihre Anforderungen beantwortet. Dies ist wahrscheinlich der am besten skalierbare, wenn auch komplexe Ansatz. Wenn Sie diesen Weg gehen, sollten Sie Twisted in Betracht ziehen, um den Servercode zu vereinfachen.

Aber versuchen Sie zuerst IronPython ...

    
Eli Bendersky 24.11.2009, 06:18
quelle
5

Ich weiß nicht, warum Sie ein Problem mit IronPython haben. Sie können immer noch alle Nltk-Aufrufe dort verwenden.

Um Ihre Frage zur Portierung einer Python-Klasse in C # zu beantworten: kompilieren Sie Ihren Python-Code in eine EXE . Dies erstellt eine DLL mit all Ihren Python-Klassen. Das ist etwas, das es schon eine Weile gibt und es hat in der Vergangenheit wie ein Zauber für mich funktioniert.

    
inspectorG4dget 24.11.2009 04:34
quelle
1

Nur eine Idee

Wie wäre es damit, Python als Server auszuführen und es von .NET mit Socket zu verbinden?

Da das NLTK-Laden Zeit braucht, sollten Sie es sowieso vorher laden.

    
YOU 24.11.2009 04:32
quelle

Tags und Links