14

的背景

我正在和朋友一起构建一个相当大的 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 得到完全支持,我就很高兴。

4

4 回答 4

3

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

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

至于寻找 Python 托管,这个页面可能会有所帮助

于 2008-11-24T14:35:35.857 回答
3

我想说,如果你喜欢 Django,你也会喜欢 Python。不要犯(太常见的)错误,在学习新语言的同时混合过去的语言经验。只有在掌握了 Python 之后,你才会有经验来判断一种混合语言是否比任何一种语言都好。

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

于 2008-11-24T15:17:55.910 回答
1

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

然后,我决定编写与不同实现上的库(例如,不同的 GUI 库)交互的插件。

为什么?我很早就决定,我的代码的寿命可能不仅取决于 CPython,还取决于虚拟机。对于今天的目的,CPython 是因为速度而要走的路,但谁知道明天呢。如果您的代码足够灵活,您可能不必决定定位一个。

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

于 2008-11-24T19:10:44.943 回答
0

Django 应该是 jython 兼容的 sinc 版本 1.0。

本教程有点过时,但从那里您可以看到没有特殊问题。

于 2008-11-24T14:32:30.870 回答