試圖在同一時間針對這些環境中的兩個,我可以放心地說,如果您必須使用數據庫等,您最終必須爲該環境編寫唯一的代碼。你有一個很好的方法來處理這種情況?什麼是編寫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. Python需要一個GIL。但Jython和IronPython沒有。爲什麼?
- 4. vim中代碼塊和宏的最佳策略是什麼?
- 5. WF 4中的單元測試工作流的一些策略是什麼?
- 6. IronPython和Jython與CPython有相同的GIL問題嗎?
- 7. 什麼是用Python編寫的一些現代Comet服務器?
- 8. CPython,IronPython,Jython腳本是否相互兼容?
- 9. 什麼是一個好的Linux退出錯誤代碼策略?
- 10. 爲什麼在編寫代碼時UIBarbuttonItem在Swift中不工作?
- 11. Ironpython:函數在CPython中工作,IronPython中神祕的空指針異常
- 12. 集成Jython Cpython
- 13. 爲什麼用python編寫的決策樹代碼與用R編寫的代碼不同?
- 14. IronPython是否可用作CPython的替代品?
- 15. 爲什麼includeOptional不能像編寫代碼一樣工作
- 16. 您在家工作時使用什麼策略來同步您的代碼
- 17. 什麼是懶惰的策略,它是如何工作的?
- 18. 任何CPython 2.7代碼都可以在Jython 2.7b3中運行嗎?
- 19. 將在Windows中編寫的Python代碼工作在Linux?
- 20. 什麼是一些流行的Git佈局策略?
- 21. 可以編寫將在Python和IronPython上運行的XML閱讀代碼嗎?
- 22. 什麼是提取策略?
- 23. REST和RDF,表示策略是什麼?
- 24. 編寫負載測試工具有哪些策略?
- 25. 爲什麼用C++代碼編寫的普通URI工作?
- 26. 在python中編寫代碼以從「txt」文件讀取一些示例輸入的最佳方式是什麼?
- 27. 什麼是用C通用代碼複用策略
- 28. 什麼是它不同的實現上(Jython/IronPython的/ pypy /等)與
- 29. Python vs Jython vs IronPython vs wxPython有什麼區別?
- 30. 爲什麼這個Python代碼工作?
So Daren,有沒有辦法讓module_importer根據一些環境變量動態地導入正確的變量等。 – minty 2008-09-10 07:12:44
對不起,我在這裏畫一個空白。這將是一個優秀的SO問題:「如何動態地確定我們是否正在運行Jython,CPython或IronPython?」。然後,你可以在ifs中做... – 2008-09-10 11:42:39