2010-12-06 102 views
2

J'utilise un programme Java pour charger et exécuter des scripts Jython en utilisant org.python.util.PythonInterpreter. Je stocke les scripts Jython dans une base de données: actuellement, je dois extraire les scripts Python dans un système de fichiers avant de les exécuter, afin de garantir le bon fonctionnement des instructions 'import' dans les scripts. Existe-t-il un moyen d'éviter cette étape d'extraction: est-ce qu'il existe un moyen de se connecter à l'interpréteur Python pour intercepter les importations et appeler une méthode Java (qui chargerait la source jython à partir de la base de données)?Jython: Importer des modules à partir d'autres sources (DB par exemple)?

Répondre

2

Vous pouvez ajouter des importateurs de Python ou Java soit (il y a une norme dans le code Jython qui importe du classpath: org.python.core.ClasspathPyImporter, il y a aussi quelques Javadocs dans l'interface org.python.core.util.importer il met en oeuvre qui peut être utile). Le code est relativement simple. voir aussi PEP 302.

+0

Merci pour cela (+1) - Je ne tiens pas la réponse acceptée pour un peu: j'aimerais voir si quelqu'un peut fournir un exemple simplifié de ce que j'ai réellement besoin de mettre en œuvre - pas clair des javadocs ce dont j'ai réellement besoin faire ! À votre santé – monojohnny