Seite 1 von 1

[subprocess.Popen] funktioniert nicht

Verfasst: Sonntag 9. März 2008, 18:28
von Gisi
Hi,

ich arbeite momentan mit nem NER Tool (named entity recognition) und versuche dieses per Kommandozeile bzw besser per subprocess.Popen zu starten.

Wenn ich Start -> ausführen und dann
d:\stanford-ner-2007-11-05\ner sample.txt > d:\scheis\final.txt

eingebe, wobei sample.txt die Inputdatei und final.txt folglich die Outputdatei sind, funktioniert alles.

Verwende ich allerdings das Subproces-Modul:

Code: Alles auswählen

subprocess.Popen(r"d:\stanford-ner-2007-11-05\ner sample.txt > d:\scheis\final.txt", shell=True)
kommt immer folgender Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: edu/stanford/nlp/ie/crf/CRFClassifier

Ich dachte, subprocess.Popen mit dem Argument Shell=true würde ganz genau dasselbe tun, wie wenn ich das erste Argument über Start-Ausführen eingebe...

Irgendwelche Ideen?

Thx,

Gisi

Verfasst: Sonntag 9. März 2008, 19:38
von Zap
Ich hab mir das mit dem Shell Attribute noch nie so genau angeguckt, ich hätte das ganze so an subprocess übergeben:

Code: Alles auswählen

out_file = "d:\scheis\final.txt"
subprocess.Popen([r"d:\stanford-ner-2007-11-05\ner", "sample.txt"], stdout=open(out_file, "w"))
print open(out_file).read()

Verfasst: Sonntag 9. März 2008, 20:09
von Gisi
Hi,

danke für den Tipp, aber es konnte anders gelöst werden. Eine .jar Datei musste in denselben Ordner gelegt werden, wo auch die Python Funktion ist. Damit funktioniert es.

Ciao