Jython: ошибка в модуле подпроцесса, AttributeError: у объекта 'module' нет атрибута 'python' - PullRequest
1 голос
/ 09 декабря 2010

Мой проект настроен следующим образом: он запускается в классе Java, который использует метод PythonInterpreter.initialize для установки моего пути python к каталогу lib jython и каталогу, содержащему "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 голосов
/ 09 декабря 2010

Импорт пакета - org в этом случае - не всегда будет импортировать все его подпакеты и подмодули. Это зависит от пакета, чтобы определить, что будет включено, когда вы делаете import org. Очевидно, что подпакет python не включен в импорт по умолчанию, поэтому вам нужно импортировать его явно.

...