我正在研究一个稍后将部署在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