我正在研究一個稍後將部署在servlet容器中的小型django項目。但是如果我用cPython而不是Jython來開發,速度會更快。所以我想要做的是測試我的代碼是否在我的settiings.py中運行在cPython或Jython上,以便我可以告訴它使用適當的db驅動程序(postgresql_psycopg2或doj.backends.zxjdbc.postgresql)。有沒有簡單的方法來做到這一點?我可以檢測我的代碼是否在cPython或Jython上運行?
回答
對於每個不同的環境,您都將擁有獨特的settings.py。
您的開發settings.py不應該是您的QA /測試或生產settings.py。
我們做的是這樣的。
我們有一個「主」settings.py,其中包含已安裝的應用程序和其他不會有太大變化的項目。
我們有像settings_dev_win32.py
和settings_qa_linux2.py
和 「settings_co_linux2.py`名稱等
每條這些特定的環境設置進口‘大師’的設置,然後覆蓋之類的特定環境,文件DB驅動程序。由於每個設置文件對於某個環境都是唯一的,因此沒有if語句並且沒有檢測到我們正在運行哪個環境。
生產(在Apache中使用mod_wsgi和mysql)使用settings_prod_linux2.py
文件,而沒有其他文件。
開發(在Windows中使用sqlite)使用settings_dev_win32.py
文件。
由於sunqiang指出
import platform
platform.system()
作品的Jython 2.5,但是這不會對Jython的2.2(以前的Jython版本)工作。此外,還有一些關於在Jython 3.x中返回更多操作系統特定細節的討論。什麼也沒有決定在那裏,而是向前和向後兼容的安全,我會建議使用:
import sys
sys.platform.startswith('java')
這將返回True對Jython和虛假其他地方(其實用Jython 2.2或以上它Jython和返回1 0其他地方,但在if語句和其他檢查中,這仍然可以正常工作)。這個調用在Jython中至少可以早於2.1,並且可以在可預見的將來使用。
在Python版本2.6或以上(請注意Jython的2.6尚未公佈),另一種選擇是:
import platform
platform.python_implementation
它返回 'CPython的' 爲C實現的Python, 'IronPython的' 對IronPython和意志爲Jython返回'Jython'。很顯然,這個版本在2.6以下不兼容,但是會向前兼容。
最明確的方法是:
進口平臺
platform.python_implementation()
'CPython的'
默認情況下,大多數時間底層的解釋器只有CPython,這也可以說是最有效的:)
- 1. 任何CPython 2.7代碼都可以在Jython 2.7b3中運行嗎?
- 2. 我可以檢測相機是否在使用GPUImage運行?
- 3. 在Python中,如何測試解釋器是否正在運行Pyston,Jython,CPython?
- 4. 在運行時檢測產品代碼或測試代碼是否在Swift中
- 5. 檢測我是否在SharePoint中運行
- 6. 我可以檢測我的Windows 8應用程序是否正在運行?
- 7. 如何檢查Google Test是否在我的代碼中運行
- 8. 如何檢測我的代碼是否在Rails 3的控制檯中運行?
- 9. 檢測我的應用程序是否在電話上運行
- 10. shell腳本可以檢測JavaScript是否在Firefox上運行?
- 11. 是否可以在GA144上運行仿真的C代碼?
- 12. 在VS2010單元測試中,我可以檢測測試是否正在運行或調試嗎?
- 13. 檢測我的apk是否在玻璃或移動設備上運行
- 14. 是否可以檢測到我的應用程序是否正在運行並顯示在屏幕上?
- 15. 檢測我運行上
- 16. 如何檢測我是否在芹菜工人身上運行?
- 17. 如何確定我的代碼是否在Google Glass上運行?
- 18. 我們可以檢測一個網站是否在CDN上?
- 19. TeamCity是否可以在本地機器上運行源代碼?
- 20. 是否可以在iOS上下載和運行代碼
- 21. 是否可以在htm文件上運行asp代碼?
- 22. 是否有一種方法來檢測代碼是否被本地,測試環境或在App Engine上運行?
- 23. Jython是否在我的代碼庫中有責任?
- 24. 如何檢測我是否運行MATLAB或八度?
- 25. 如何檢查我的多線程代碼是否在多線程上運行?
- 26. 如何檢測我是否可以在一個盒子上運行爲gcc4編譯的可執行文件?
- 27. 集成Jython Cpython
- 28. 我可以檢查異步功能是否正在運行?
- 29. 我可以檢查rspec是否正在運行?
- 30. 我可以檢測到應用程序是否在兒童區運行?
+1:我喜歡當我學習一些新的python角落! – 2009-07-09 14:29:00