Jython:子进程模块出错,AttributeError:'module'对象没有属性'python'

时间:2010-12-09 08:39:13

标签: java python subprocess jython

我的项目设置如下,它从一个Java类开始,它使用PythonInterpreter.initialize方法设置我的python路径到jython Lib目录和一个包含“org / curious / neofelis / 的目录我的jython文件“。然后我创建一个PythonInterpreter并让它执行我的主jython文件。

我想这是非正统的,但它一直在工作但是当我尝试使用Popen时我得到了这个错误

File "/home/steven/jython/Lib/subprocess.py", line 1163, in _get_handles
  elif isinstance(stdout, org.python.core.io.RawIOBase):

当尝试重现此错误时,我发现我可以执行此操作

from org.python.util import PythonInterpreter

#A PythonInterpreter running inside a PythonInterpreter!
interpreter = PythonInterpreter()
interpreter.exec("print 3+6");
sys.exit(0)

但这没有飞行

import org

interpreter = org.python.util.PythonInterpreter()
interpreter.exec("print 3+6");
sys.exit(0)

  File "/home/steven/neofelis/src/main/jython/org/curious/neofelis/main.py", line 34, in <module>
    interpreter = org.python.util.PythonInterpreter()
AttributeError: 'module' object has no attribute 'python'

1 个答案:

答案 0 :(得分:0)

导入包 - 在这种情况下为org - 并不总是导入其所有子包和子模块。由{I} import org定义将包含的内容取决于包。显然,python子包默认情况下不包含在导入中,因此您需要显式导入它。