試圖在同一時間針對這些環境中的兩個,我可以放心地說,如果您必須使用數據庫等,您最終必須爲該環境編寫唯一的代碼。你有一個很好的方法來處理這種情況?什麼是編寫Python代碼,在CPython,Jython和IronPython中工作的一些策略
16
A
回答
15
如果做找到你需要編寫唯一代碼的環境中,使用蟒蛇
import mymodule_jython as mymodule
import mymodule_cpython as mymodule
有這個東西在一個簡單的模塊(「」 module_importer'?),寫你這樣的代碼:
from module_importer import mymodule
這樣,您只需要在每個平臺上改變module_importer.py
即可。
10
@Daren Thomas:我同意,但您應該使用platform module來確定您正在運行哪個解釋器。
2
我爲CPython和IronPython編寫代碼,但提示也應該適用於Jython。
基本上,我將所有平臺特定的代碼寫入單獨的模塊/包中,然後根據我運行的平臺導入相應的代碼。 (請參閱上面的cdleary的註釋)
這對於SQLite實現與實現任何GUI代碼之間的差異時尤爲重要。
1
#1事情IMO:專注於線程安全。 CPython的GIL使編寫線程安全代碼變得簡單,因爲一次只有一個線程可以訪問解釋器。 IronPython和Jython雖然有點不太好用。
0
我敢肯定你已經知道這一點,但遺憾的是Jython的can't load c extension modules.
0
有兩種主要問題在這裏打球......
首先,據我所知,只有CPython的有RAII - 你必須在Jython,Ironpython等中關閉自己的資源。
第二,如前所述,線程安全。
相關問題
- 1. Cpython,IronPython和PyPy究竟是什麼?
- 2. 哪些編碼策略在打字稿中更好?爲什麼?
- 3. vim中代碼塊和宏的最佳策略是什麼?
- 4. Python需要一個GIL。但Jython和IronPython沒有。爲什麼?
- 5. WF 4中的單元測試工作流的一些策略是什麼?
- 6. IronPython和Jython與CPython有相同的GIL問題嗎?
- 7. 什麼是一個好的Linux退出錯誤代碼策略?
- 8. 集成Jython Cpython
- 9. 爲什麼用python編寫的決策樹代碼與用R編寫的代碼不同?
- 10. 爲什麼includeOptional不能像編寫代碼一樣工作
- 11. 您在家工作時使用什麼策略來同步您的代碼
- 12. 任何CPython 2.7代碼都可以在Jython 2.7b3中運行嗎?
- 13. REST和RDF,表示策略是什麼?
- 14. 什麼是提取策略?
- 15. 爲什麼這個Python代碼工作?
- 16. 我可以檢測我的代碼是否在cPython或Jython上運行?
- 17. PyPy +用python編寫的Cpython擴展(rust-cpython)
- 18. 爲什麼這個方法調用工作,但不是在編寫代碼?
- 19. 以下代碼的工作是什麼?
- 20. CPython和IronPython的功能差異
- 21. 在Ubuntu上編譯cpython代碼16.04
- 22. 什麼是記錄代碼更改的一些工具?
- 23. 什麼是Perl的一些代碼覆蓋工具?
- 24. 這段代碼中的編輯和新操作是什麼?
- 25. 如何在IronPython中引用編譯好的python代碼?
- 26. 什麼是編寫和測試交互式python3代碼的最佳工具?
- 27. 在Inser,編輯和刪除操作中,在asp.net中編寫JQuery代碼的最佳方法是什麼?
- 28. 爲什麼編碼不總是工作?
- 29. CPython/Jython跨實現GUI
- 30. 在www.hostingcompany.com/~/mysite.com上維護源代碼的好Git策略是什麼?
So Daren,有沒有辦法讓module_importer根據一些環境變量動態地導入正確的變量等。 – minty 2008-09-10 07:12:44
對不起,我在這裏畫一個空白。這將是一個優秀的SO問題:「如何動態地確定我們是否正在運行Jython,CPython或IronPython?」。然後,你可以在ifs中做... – 2008-09-10 11:42:39