我正在研究一個稍後將部署在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. 在Python中,如何測試解釋器是否正在運行Pyston,Jython,CPython?
- 3. 在運行時檢測產品代碼或測試代碼是否在Swift中
- 4. 檢測我是否在SharePoint中運行
- 5. 如何檢查Google Test是否在我的代碼中運行
- 6. 如何檢測我的代碼是否在Rails 3的控制檯中運行?
- 7. 檢測我的應用程序是否在電話上運行
- 8. 是否可以在GA144上運行仿真的C代碼?
- 9. 是否可以檢測到我的應用程序是否正在運行並顯示在屏幕上?
- 10. 檢測我運行上
- 11. 如何檢測我是否在芹菜工人身上運行?
- 12. 我們可以檢測一個網站是否在CDN上?
- 13. 如何檢查我的多線程代碼是否在多線程上運行?
- 14. 如何檢測我是否運行MATLAB或八度?
- 15. Jython是否在我的代碼庫中有責任?
- 16. 如何檢測我是否可以在一個盒子上運行爲gcc4編譯的可執行文件?
- 17. 集成Jython Cpython
- 18. 我可以檢查rspec是否正在運行?
- 19. 我可以檢查異步功能是否正在運行?
- 20. 我可以在dalvik上運行C代碼嗎
- 21. 是否有Jython或JRuby的框架,還是你可以在JVM上運行py或ruby應用程序?
- 22. 如何檢查OpenACC是否可以在我的電腦上運行?
- 23. 我可以檢查一個Unicode代碼點是否可以在Android下顯示?
- 24. 如何檢測我的代碼是否在Sidekiq服務器或Puma內部運行?
- 25. 我們是否可以使用React js進行信標檢測
- 26. 是否有我可以恢復到上次構建/測試成功的代碼?
- 27. 是否可以在Intellij中禁用重複代碼檢測?
- 28. 是否在GPU上運行opengl代碼?
- 29. 如何檢測它是否在iPhone或iPad上運行?
- 30. 檢查您的代碼是否在64位PHP上運行
+1:我喜歡當我學習一些新的python角落! – 2009-07-09 14:29:00