我在Python中創建了一個模塊,它提供了大約十幾種功能。雖然它將主要在Python中使用,但仍有很多遺留用戶將從Perl中調用它。從Perl調用Python模塊
插入此模塊的最佳方式是什麼?我的想法是:
- 提供的功能作爲命令行實用程序,使通話
system
- 建立某種形式的服務器和處理RPC調用(比如,通過JSON RPC)
任何建議?
我在Python中創建了一個模塊,它提供了大約十幾種功能。雖然它將主要在Python中使用,但仍有很多遺留用戶將從Perl中調用它。從Perl調用Python模塊
插入此模塊的最佳方式是什麼?我的想法是:
system
任何建議?
另一種選擇是直接在Perl腳本中使用Inline::Python
來嵌入Python。
這可能比其他解決方案更簡單,只需要一個額外的模塊。
在短期內,最簡單的解決方案是使用Inline :: Python。緊接着調用一個命令行腳本。
從長遠來看,使用服務器提供RPC功能或只是調用命令行腳本將爲您提供最有前途的解決方案。
爲什麼?
因爲這種方式與Perl或Python無關,因爲它是用於構建消耗庫所提供服務的系統的語言。無論哪種方法都可以創建一個清晰的獨立於語言的界面,您可以使用您採用的任何開發環境。
根據您的需要,任何提供的選項可能是「最佳選擇」。根據您的需求隨着時間的推移而變化,不同的選擇可能會顯示爲「最佳」。
我的這種做法是要問幾個問題:
你經常改變的開發工具。你已經從Perl切換到Python。你是從Tcl開始學習Perl嗎?你會在1年,5年或10年內轉向令人興奮的新語言X嗎?如果您經常更換工具(無論如何)強調交叉工具兼容性。
速度有多快?命令行解決方案的啓動時間可以嗎? Inline :: Python是否會減慢速度(你還在初始化一個Python解釋器,它只是嵌入到你的Perl解釋器中)?
根據這些問題的答案,我會做最簡單的事情,很可能工作。
我的猜測是,爲了這意味着:
在線:: Python的效果很好,可以有雖然通過某些類型的變量時會有些奇怪。 – GWW 2010-08-09 17:15:58
謝謝。我喜歡所有的答案,但這似乎很便攜。 – Escualo 2010-08-10 15:24:51