Gerade wurde ein Problem mit dem AUfruf externer Programme gelöst, da klemmt es schon wieder.
Jetzt soll ocrmpdf aufgerufen werden.
Das funktionierte bislang so, dass aus einem bash-script heraus ocrmypdf aufgerufen wurde - ohne Probleme.
Jetzt wird versucht, dies aus einem Pythons-Skript zu tun - eben mit subprocess.call oder subprocess.chkouput.
Ich bekomme in dieser Zeile aber eine Fehlermeldung:
Fatal Python error: Py_initialize: Unable the locale encoding
Das ganze stammt anscheinend aus python2.7/encodings line 123
Die Meldung legt nahe, dass das aus Python 2.7 stammt. Vielleicht sollte mein Skript mit Python 3.x laufen? Ich habe aber keine Ahnung wie ich das in PyDev umstellen kann.
Das nächste Problem mit subprocess ...
@drnicolas: Wie startest Du das genau und wie sieht die Ausgabe genau aus? Am besten 1:1 Kopie, nicht abtippen.
Und passiert das auch wenn Du das aus einer Shell heraus startest und nicht aus der IDE?
Und passiert das auch wenn Du das aus einer Shell heraus startest und nicht aus der IDE?
Code: Alles auswählen
_cmdlist=['ocrmypdf',
'-d',
'-l', 'deu',
'--output-type', 'pdfa',
# '--pdfa-image-compression', 'jpeg',
#'--rotate-pages',
'--verbose 2',
#' --clean',
# ' --skip-text',
# '--author','Scanner-Automation',
# '--subject', 'automatisierte_Ueberarbeitung',
target_removedpages, target_ocred]
_ocrmypdf_str=' '.join(_cmdlist)
log.debug('Aufruf ocrmypdf: %s',_ocrmypdf_str)
rem=subprocess.Popen(_cmdlist, stdout=subprocess.PIP, stderr=subprocess.PIPE)
stdout, stderr=rem.communicate()
log.debug('ocrmypd: stdout: %s ',stdout )
log.debug('stderr: %s', stderr)
log.debug('returncode: % i', rem.returncode)
except subprocess.CalledProcessError as e:
log.error('OCR-Prozess fehlgeschlagen. Abbruch (-5)')
stdout, stderr=rem.communicate()
log.error('Return-code: %i, %s',rem.returncode, stderr)
log.error('stdout: %s', stdout)
#logging.shutdown(f1)
ProcessLogFile()
Mit diesem Code schlägt irgendwas fehl, aber ich bekomme keine genaue Fehlermeldung, wahrscheinlich weil das Objekt rem noch gar nicht erstellt ist.
Von der Kommandozeile kann ich das Skript laufen lassen, ohne dass irgendwas fehlschlägt.
ocrmypdf -d -l deu --output-type pdfa -v 2 /tmp/20170731_scan_215846.pdf /tmp/20170731_scan_215846_ocr.pdf
Das ist der AUfruf aus dem Skript.
Zuletzt geändert von Anonymous am Sonntag 6. August 2017, 20:55, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
@drnicolas: Also bei dem Code sehe ich in Zeile 15 einen `AttributeError` weil es `subprocess.PIP` nicht gibt.