I've read A LOT about this matter but nothing seems to work with me right!
I'm using Netbeans 8.0
and Python 2.6.5
, Jython 2.5.1
(the default from adding Python and Jython Plugin to netbeans)
I'm a mac os x 10.9.3 user
I tried to open a new Jython Code where I add the path to python to get it work: /Library/Frameworks/Python.framework/Versions/2.7/bin/python
and it does.
I also tried to call a Python code from Java code using Jython and it works for simple print code. But when I add an nltk POS code (which work very fine in Python interpreter) it throws an error: ImportError: No module named nltk
I thried those Paths: /Library/Frameworks/Python.framework/Versions/2.7/bin/python /Library/Python/2.7/site-package
when I call python from terminal the nltk import work fine:
Sosys-MacBook-Pro:~ ha$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/ha/apache-maven-3.2.1/bin:/Users/ha/apache-opennlp-1.5.3/bin:/Users/ha/jython2.5.4rc1:/Users/ha/nltk_data:/Library/Python/2.7/site-packages:/usr/lib/python2.7/
Sosys-MacBook-Pro:downloads ha$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>>
Then I get another error: ImportError: No module named signal. and so on with those no module named... I also tried to add jython-standalone-2.7-b21.jar in the classpath in the Libraries but it doesn't solve this problem.
How can I get it work?
Appendix: my Java Code:
package jythonprojecttes;
import java.lang.*;
import org.python.util.PythonInterpreter;
public class JythonProjectTes {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try
{
System.out.print(java.lang.System.getProperty("java.class.path"));
PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("/Users/ha/NetBeansProjects/JythonProjectTes/src/jythonprojecttes/Code.py");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
my Python Code:
import nltk
tokenizer = None
tagger = None
def tag(sentences):
global tokenizer
global tagger
tagged = nltk.sent_tokenize(sentences.strip())
tagged = [nltk.word_tokenize(sent) for sent in tagged]
tagged = [nltk.pos_tag(sent) for sent in tagged]
return tagged
def ReadFromTXT():
# Reading input from a file
Question = open('/Users/ha/NetBeansProjects/JythonNLTK/src/jythonnltk/input.txt', 'r')
return Question.read()
def PrintToText(tagged):
# Writing output to file
output_file = open('/Users/ha/NetBeansProjects/JythonNLTK/src/jythonnltk/output.txt', 'w')
output_file.writelines(["%s\n" % item for item in tagged])
output_file.close()
print "Printed to Output.txt"
def main():
#Only 'What be' kind of questions.
sentences = ReadFromTXT()
print "The Question is:"+sentences
tagged = tag(sentences)
PrintToText(tagged)
print tagged
if __name__ == '__main__':
print sys.path
main()
Thanks in advance