我有一些需要調用Python腳本幾千次的C#代碼,每次傳遞一個字符串,然後期待返回一個浮點數。 python腳本可以使用ANY版本的Python運行,所以我不能使用Iron python。建議使用IPC命名管道。我沒有這方面的經驗,並且無法弄清楚如何在C#和Python之間做到這一點。這是一個簡單的過程,還是我正在尋找一個體面的工作量?這是解決我的問題的最好方法嗎?使用IPC與Python和C#進行通信的最簡單方法是什麼?
回答
使用zeromq。
- 允許非常輕的消息,而不需要經紀人
- 可用於多種平臺
- 可以使用zeromq我的答案在TCP套接字,Unix套接字或過程
這裏內部溝通https://stackoverflow.com/a/23227631/346478
它用於不同Python程序之間的消息傳遞,但在其他平臺之間可以使用完全相同的通信方法。只要保持消息傳遞可交互 - 雙方都必須正確理解內容。你可以玩二進制數據,但很多時候json表示的工作也很快且容易。但是有很多序列化框架,比如結果緩衝區等,這可能會幫助您對結果進行編碼。
這可能是一個很好的解決方案,但可能會有安全隱患,因爲你綁定到一個tcp端口。至少,除非你真的想要通過網絡直播,否則只限於localhost。 – tdelaney
@ user3490130關於速度,準備好真的很快。每秒數以萬計的消息,其中較小的消息往往勝過TCP,因爲它將多個消息管理爲一個TCP數據包(取決於實際使用情況)。 –
完成新手到這個編碼領域。你能簡單地解釋一下c#端需要什麼來實現這個功能嗎? – user3490130
- 1. 使用Python進行SSH的最簡單方法是什麼?
- 2. 在c#和c之間進行進程間通信的最簡單方法是什麼?
- 3. 什麼是Linux上的pthreads之間進行通信的最簡單的方法
- 4. 在python和haskell進程之間進行通信的ipc庫是什麼?
- 5. Xbee使用Python進行簡單通信?
- 6. 用python執行WHOIS協議最簡單的方法是什麼?
- 7. 使用TortoiseSVN進行分支和合並的最簡單方法是什麼?
- 8. 應用程序與asp.net中的網站進行通信的最簡單方法是什麼?
- 9. 從C++調用Java方法的最簡單方法是什麼?
- 10. 什麼是從Javascript調用C#方法的最簡單方法
- 11. 什麼是與Firefox插件進行通信的最佳方式
- 12. 通過ActiveResource使用OAuth最簡單的方法是什麼?
- 13. 在.NET中進行簡單分佈式通信最簡單的方法是什麼?
- 14. C++與Python之間的通信(IPC)
- 15. SQLite與SAS一起使用最簡單的方法是什麼?
- 16. 什麼是使用C#實現信號量的最簡單方法?
- 17. KNIME - 進行情緒分析的最簡單方法是什麼
- 18. 在長期運行的c進程和python之間進行雙向IPC的最佳方式是什麼?
- 19. Clojure和Python程序共享信息的最簡單方法是什麼?
- 20. 使用isdigit()和isalpha()命令最簡單的方法是什麼?
- 21. 使用PhoneGap與服務器進行通信的最佳方式是什麼?
- 22. 使用Windows Phone 7的WebRequest進行POST的最簡單方法是什麼?
- 23. 2個C#進程之間進程間通信的最簡單方法是什麼?
- 24. iOS和Mac OS X之間進行雙向通信的最簡單方法是什麼?
- 25. 在Python列表上進行sort和uniq的最簡潔的方法是什麼?
- 26. 使用Web API進行身份驗證的最簡單方法是什麼?
- 27. 什麼是C++和C#應用程序之間異步通信的最簡單方法
- 28. 用Python安裝OpenVAS omblib最簡單的方法是什麼?
- 29. C++和c之間進行通信的最快方法#
- 30. 用C#創建Excel表最簡單的方法是什麼?
STDIN/STDOUT是否足夠快?我期望這是一個好方法。 –
這就是我現在使用的。我需要提高速度。 – user3490130