我尝试在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
模块时,我都会遇到问题:
这里怎么了?Jython与Python2.7不兼容吗?我该怎么做才能让事情正常运转?在
不能混合Python版本和实现。您使用的Cpython是2.7,而Jython是2.5,所以即使您为cpython2.5和2.7做了这些,它们也不能有相同的路径
您看到的实际错误是因为jython加载python C库并获取调用jython没有的C代码的代码。在
您可以共享同一版本的纯python代码,例如python2.5和jython2.5,但不太可能管理任何其他混合版本。在
相关问题 更多 >
编程相关推荐