2010-12-09 47 views
1

J'ai mon projet configuré comme ça, il démarre dans une classe Java qui utilise la méthode PythonInterpreter.initialize pour définir mon chemin python vers le répertoire Jython Lib et un répertoire contenant "org/curious/neofelis/mes fichiers jython". Je crée ensuite un PythonInterpreter et le fais exécuter mon fichier principal de Jython.Jython: Erreur dans le module de sous-processus, AttributeError: l'objet 'module' n'a pas d'attribut 'python'

Je suppose qu'il est peu orthodoxe, mais il fonctionnait mais quand j'ai essayé d'utiliser Popen J'ai eu cette erreur

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

Lorsque vous essayez de reproduire cette erreur je trouve que je peux le faire

from org.python.util import PythonInterpreter 

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

Mais cela n'a pas volé

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' 

Répondre

0

Importer un paquet - org dans ce cas - n'importera pas toujours tous ses sous-packages et sous-modules. Il appartient à l'ensemble de définir ce qui sera inclus lorsque vous faites import org. De toute évidence, le sous-package python n'est pas inclus dans l'importation par défaut, vous devez donc l'importer explicitement.