【问题标题】:Is Jython 2.5.1 incompatible with Python 2.7?Jython 2.5.1 与 Python 2.7 不兼容吗?
【发布时间】:2012-02-11 14:03:49
【问题描述】:

我正在尝试在 Java 中的 Jython 中做一些非常简单的事情。我的 Python 路径以及我的 Jython 路径设置为以下内容:

$ python -c "import sys ; ':'.join(sys.path)"
:/usr/lib/python2.7:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PIL:/usr/lib/python2.7/dist-packages/gst-0.10:/usr/lib/python2.7/dist-packages/gtk-2.0:/usr/lib/pymodules/python2.7:/usr/lib/python2.7/dist-packages/ubuntu-sso-client:/usr/lib/python2.7/dist-packages/ubuntuone-client:/usr/lib/python2.7/dist-packages/ubuntuone-control-panel:/usr/lib/python2.7/dist-packages/ubuntuone-couch:/usr/lib/python2.7/dist-packages/ubuntuone-installer:/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol:/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode

(可以找到更容易阅读的列表here。)

我已经通过定义 -Dpython.path=":/usr/lib/python2.7:..." 设置了我的 Jython 路径,它运行得相当好。

但是,每当我尝试做任何重要的事情时,我都会遇到问题,例如导入 os 模块:

>>> import os
Exception in thread "main" Traceback (most recent call last):
    File "<iostream>", line 2, in <module>
SyntaxError: ('no viable alternative at input \'""\'', ('/usr/lib/python2.7/os.py', 754, 18, '            bs = b""\n'))

这里出了什么问题? Jython 与 Python 2.7 不兼容吗?我该怎么做才能让事情正常进行?

【问题讨论】:

    标签: python jython python-2.7


    【解决方案1】:

    您不能混合使用 Python 版本和实现。您使用的 Cpython 是 2.7,而 Jython 是 2.5,因此即使您为 Cpython 2.5 和 2.7 执行此操作,它们也不能具有相同的路径

    您看到的实际错误是因为 jython 加载了 python C 库并获取了调用 jython 没有的 C 代码的代码。

    您可以共享相同版本的纯 Python 代码,例如python 2.5 和 jython 2.5,但不太可能管理任何其他组合。

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 2018-09-16
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      相关资源
      最近更新 更多