Jython 2.5.1: "导入错误:没有名为os的模块

8 投票
3 回答
17416 浏览
提问于 2025-04-15 15:27

我查看了其他帖子和错误报告,但还是搞不清楚是什么导致了这个问题。我在Eclipse的Java项目中使用Jython 2.5.1(操作系统是Ubuntu 8.10)。我把它作为一个独立的.jar文件添加到项目中(只是把旧的Jython 2.1的jar替换成了这个)。

我正在运行一个使用threading.py类的脚本。在某个时刻,linecache.py中的“import os”这行代码被执行时,我遇到了一个错误,我似乎找不到解决办法:

'Execution failed.  Traceback (most recent call last):
 File "<string>", line 1, in <module>
 File "../lib/python/threading.py", line 6, in <module>
 import traceback
 File "../lib/python/traceback.py", line 3, in <module>
 import linecache
 File "../lib/python/linecache.py", line 9, in <module>
 import os
 ImportError: No module named os'

3 个回答

1

如果你在使用maven的时候遇到问题,试试用依赖项 jython-standalone 来替代 jython,这对我在一个使用jython-standalone-2.5.3的maven项目中是有效的。

1

这里面有个很深层次的问题,但可能很容易解决。你看到的错误其实是在尝试报告其他错误时出现的。

很可能是你的PYTHONPATH设置不正确。我对Jython或者在Eclipse中运行Jython的细节不太了解,但看起来你没有可用的标准库。

6

你说的“随2.5下载包一起提供的jar文件”是什么意思呢?你是提取了内容并使用了jython.jar,还是运行了安装程序?如果你只是提取了文件而没有运行安装程序,那么你的jython.jar可能缺少整个LIB文件夹。

你能检查一下jython.jar里面是否有一个LIB文件夹吗?(比如用7z或者WinZip打开jython.jar)。

或者试着把LIB文件夹复制到jython.jar所在的同一个文件夹里。


你有没有尝试设置这些属性呢?可以参考一下Jython注册表,比如在Eclipse的运行配置中通过-Dpython.home来设置。

python.cachedir
python.path
python.home

这个jar文件的名字是什么?如果类似于jython-complete.jar,试着把它改名为jython.jar

撰写回答