Python 在Jython上开发Django有问题吗?

Python 在Jython上开发Django有问题吗?,python,django,jvm,jython,Python,Django,Jvm,Jython,背景 在我自己的时间里,我和一位朋友正在构建一个相当大的web应用程序,我们决定在Python上使用Django框架。Django为我们提供了很多我们需要的特性,所以请不要建议其他框架 我唯一遇到问题的决定是,我们是使用Python还是Jython来开发我们的应用程序。现在我非常熟悉Java,可能会从JDK中的库中获益。我知道最简单的Python,但我正在利用这个项目来学习一门新语言——因此大部分工作都将用Python编写 Jython的吸引力当然是JVM。启用python/django的web

背景

在我自己的时间里,我和一位朋友正在构建一个相当大的web应用程序,我们决定在Python上使用Django框架。Django为我们提供了很多我们需要的特性,所以请不要建议其他框架

我唯一遇到问题的决定是,我们是使用Python还是Jython来开发我们的应用程序。现在我非常熟悉Java,可能会从JDK中的库中获益。我知道最简单的Python,但我正在利用这个项目来学习一门新语言——因此大部分工作都将用Python编写

Jython的吸引力当然是JVM。启用python/django的web主机的数量非常少——而我假设我可以在各种各样的主机上删除jython/django应用程序。这不是一个重大的设计决策,但我认为仍然需要做出决定。就jvm可访问性而言,我更喜欢jython而不是python

问题

与常规python相比,Jython有很多限制吗?在jython上运行django会导致问题吗?Jython团队与Python一起发布更新的速度有多快?Django会像Jython上宣传的那样工作吗(预配置非常少)

决断


谢谢你的宝贵意见。我想我将要做的是在Jython中开发JVM支持,但是尝试只使用Python代码/库。可移植性不是一个主要的问题,所以如果我需要JDK中的库(python中没有),我会使用它。只要Django得到充分支持,我很高兴。

Django应该是jython兼容的sinc 1.0版

有点过时,但是从那里你可以看到没有特别的问题。

Django有,尽管你需要使用Jython的开发版本,因为技术上Jython 2.5仍然处于测试阶段。但是,Django 1.0及更高版本应该可以不经修改地工作

至于您是应该使用常规的Python实现还是Jython,我想说的是,您更喜欢使用所有可用的Java库还是所有的Python库。此时,您可以期望Python标准库中的几乎所有内容都能与Jython一起工作,但是仍然有很多第三方软件包无法工作,特别是C扩展模块。我个人建议使用常规Python,但如果您有大量JVM经验,并且希望坚持您所知道的,那么我可以尊重这一点


至于寻找Python宿主,我想说,如果你喜欢Django,你也会喜欢Python。当你学习一门新的语言时,不要犯把过去的语言经验混合在一起的错误。只有在掌握了Python之后,您才能有经验判断混合语言是否比任何一种都好


的确,很少有廉价人质提供预先安装的Django;但这很可能会改变,因为这是与谷歌应用引擎最相似的环境。(大多数GAE项目都可以在Django上运行)

我最近在业余时间开始了一个开源桌面项目。因此,这可能不适用。我问了同样的问题。我决定用python(和Django)编写尽可能多的代码,并针对所有平台CPython、Jython和IronPython

然后,我决定编写插件,在不同的实现(例如,不同的GUI库)上与库进行接口

为什么??我很早就决定,我的代码的寿命可能不仅取决于CPython,还取决于虚拟机。就今天而言,CPython是前进的道路,因为速度,但谁知道明天呢。如果您的代码足够灵活,您可能不必决定是否将其作为目标


这种方法的缺点是需要创建和维护更多的代码。

可以使用load_library()从java内部加载python c扩展模块,还是需要编写一个瘦包装器来将它们移植过来?您几乎总是需要一个瘦包装器,尽管这取决于库。