2009-11-24 73 views
8

我目前正在看Python,因爲我非常喜歡文本解析功能和nltk庫,但傳統上我是一個.Net/C#程序員。我不認爲IronPython對我來說是一個集成點,因爲我正在使用NLTK,並且可能需要將該庫的一個端口用於CLR。我看了一下Python for .NET,想知道這是否是一個很好的開始。有沒有辦法將一個python類編組到C#中?此外,這個解決方案還在被使用嗎?更好的是,有沒有人做過這個?我正在考慮的一件事就是使用持久性媒介作爲中介(在Python中解析,在MongoDB中存儲,在.NET中運行站點)。Python和.NET集成

回答

8

NLTK是純python,因此可以輕鬆地在IronPython上運行。搜索結果爲this ticket - 所有人都需要安裝一些額外的Python庫,這些庫在默認情況下不會與IronPython一起提供。

這可能是您整合的最簡單方法。否則,您必須將Python作爲子流程運行,這聽起來很複雜,或者將Python作爲服務器運行,以響應您的請求。這可能是最具擴展性但複雜的方法。如果你這樣做,考慮Twisted來簡化服務器代碼。

但是請先嚐試IronPython ...

+0

不錯,這就是我一直在尋找的東西。我擔心IronPython無法支持NLTK的所有功能,但如果我需要的只是其他庫,那太棒了。 – Trent 2009-11-24 16:44:21

1

只是一個想法

如何運行背後的Python作爲服務器,它從.NET與插座連接?

由於NLTK加載需要時間,並且無論如何都要提前加載。

5

我不知道爲什麼你有IronPython的問題。你仍然可以在那裏使用任何和所有的nltk電話。

要回答關於將Python類移植到C#中的問題,請嘗試compiling your python code into an EXE。這將創建一個包含所有Python類的DLL。這是已經存在了一段時間,它已經像過去一樣魅力對我來說