python和C#結合的效果如何?是否能讓C#寫的程序調用python的庫?

現在我用主要用C#開發WPF的軟體,數據處理全是自己寫,好用的免費圖表控制項也很少。想利用python豐富的資源,讓程序功能更強大。查了資料好像Cpython不能被.net調用,如果這樣還有必要去學python嗎?現在公司要我弄個圖像處理識別的功能,有點心塞。。。。


用OLE塞個excel進去不就好了。


其實沒有問題,之前我一直非常困擾的就是兩種語言之間怎麼通訊,後來到了一段時間之後就豁然開朗了,我發現了無數的方法可以兩種語言,擴展至多種語言都可以相互調用,其實也不能叫做調用,就是傳遞數據而已。

第一種,樓主可以使用輸出重定向,將py 腳本用.net 啟動然後傳遞參數。

第二種,樓主可以對一個中間文件進行編輯,當然記得加lock,

第三種,樓主可以使用通訊協議,無論是tcp,還是http,都是很可靠的

第四種,有一種東西叫做後台進程隊列,例如rabbitmq 這樣的工具,就是叫你互相丟數據的。

第五種,有種叫做資料庫的東西你可以中間存儲數據

第六種,在win上存在著一個之前不太好後,但是我感覺現在非常好的東西叫做註冊表,你要不要試試

第七種,nosql這樣的工具,不過本質上還是資料庫什麼的。

你看,有這麼多種方法可以讓不同的語言存放數據,那麼這種基礎叫什麼,在任何一種語言中,這些東西的基礎就叫做序列化。

不知道樓主喜歡那種,挑一種試試,或者都嘗試一下。


題主問CPython的話,那不少package (比如numpy, scikit-learn)和樓上說的IronPython是不兼容的。一個親測可行的方案是用 pythonnet/pythonnet 。

此外比較傻瓜的方法(我也試過)是另開一個python process,用named pipe傳輸c#和python process間的數據。


調用exe


ironpython,或者用進程的形式運行python然後獲取結果


圖像處理可以用opencv啊,我當時做過一個東西,用WPF做了界面,然後把參數通過命令行傳入python程序,在python裡面處理數據和展示數據,顯示界面是新的,其它的感覺還好。


ironpython ..


推薦閱讀:

自學python遇到如下問題如何解決?(主要有關模塊安裝的問題)
Python 用 * (重複運算符) 和迭代器生成 list 有何不同?
學習python有什麼用?python的實際應用有哪些?
Python為什麼用不了?
沒有自學過任何計算機語言的人如何在大學中達到或超越那些」有底子」的大神?

TAG:Python | C# | WindowsPresentationFoundationWPF | Python庫 | Python入門 |