2013-05-25 8 views
5

Ho implementato un'applicazione Java che include Jython per eseguire script Python. Quando eseguo l'applicazione dall'IDE (Eclipse o IDEA), tutto funziona correttamente, gli script Python vengono elaborati correttamente.ImportErrore di moduli Python standard con Jython (nel file JAR)

Tuttavia, quando Che tipo di imballaggio tutto in un file JAR (in uscita), incluso il file jython.jar, allora ottengo il seguente errore non appena l'applicazione Java tenta di eseguire il primo script Python:

ImportError: No module named os 

Quindi sembra che la cartella Lib con tutti i moduli Python standard non sia stata trovata. Ho controllato il file jython.jar incluso nel file JAR dell'applicazione Java e include correttamente la cartella Lib. In effetti, è lo stesso file jython.jar che viene utilizzato anche quando eseguo l'applicazione dall'IDE, dove funziona.

So che si può specificare il parametro -Dpython.path, ma non so cosa impostare qui. Come posso fare riferimento alla cartella Lib che si trova all'interno del file jython.jar che si trova nel file JAR dell'applicazione principale?

risposta

0

Ho riscontrato lo stesso problema, ecco la mia soluzione: Nel tuo script python, aggiungi il percorso Lib al percorso sys. Segue il codice:

import sys 
libPath="C:\\jython2.7b1\\Lib" 
sys.path.append(libPath) 
+0

Come può essere d'aiuto se la cartella 'Lib' si trova nel file JAR? – Matthias