我正在尝试在Java中的Jython中做一些非常简单的事情。我的Python路径,以及exension,我的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不兼容吗?我能做些什么让事情发挥作用?
答案 0 :(得分:5)
您无法混合Python版本和实现。您使用的Cpython是2.7,Jython是2.5,因此即使您为Cpython 2.5和2.7执行此操作,它们也可以使用相同的路径
你看到的实际错误是因为jython加载python C库并获取调用jython没有的C代码的代码。
您可以共享同一版本的纯python代码,例如python 2.5和jython 2.5但不太可能管理任何其他混合。