使用Jython的标准Python模块的ImportError(在JAR文件中)

Mat*_*ias 5 java jython jar classpath

我已经实现了一个包含Jython的Java应用程序来运行Python脚本.当我从IDE(Eclipse或IDEA)运行该应用程序时,一切正常,Python脚本得到正确处理.

但是,当我将所有内容打包到一个JAR文件(待发布)中,包括该jython.jar文件时,一旦Java应用程序尝试运行第一个Python脚本,我就会收到以下错误:

ImportError: No module named os
Run Code Online (Sandbox Code Playgroud)

因此,似乎Lib找不到包含所有标准Python模块的文件夹.我检查了jython.jarJava应用程序的JAR文件中包含的文件,它确实包含了该Lib文件夹.实际上,这是jython.jar我从IDE运行应用程序时使用的同一文件.

我知道可以指定-Dpython.path参数,但我不知道在这里设置什么.我怎么能指的Lib是在文件夹内,jython.jar这是主要的应用程序的JAR文件中的文件?

for*_*est 0

我遇到了同样的问题,这是我的解决方案:在你的 python 脚本中,将 Lib 路径添加到 sys 路径。以下是代码:

import sys
libPath="C:\\jython2.7b1\\Lib"
sys.path.append(libPath)
Run Code Online (Sandbox Code Playgroud)