do shell scrip funktioniert nicht auch nicht via call python Umweg

T

toaster099

Mitglied
Thread Starter
Dabei seit
16.01.2005
Beiträge
37
Reaktionspunkte
0
Hallo zusammen,
ich bin am verzweifeln und brauche dringend Hilfe. Ich habe "ocrmypdf" installiert und versuche dies via AppleScript zu rufen. Direkt aus dem Terminal läuft es mit folgendem Aufruf perfekt:
Code:
ocrmypdf /Users/Alex/Final/Test.pdf /Users/Alex/Final/Test1.pdf

Versuche ich es via Apple script mit do shell script bekomme ich folgenden Fehler:
Weg 1:
Code:
do shell script "ocrmypdf /Users/Alex/Final/Test.pdf /Users/Alex/Final/Test.pdf"
Resultat: sh: ocrmypdf: command not found

Weg 2:
Code:
do shell script "ocrmypdf" & "' /Users/Alex/Final/Test.pdf'" & "' /Users/Alex/Final/Test1.pdf'"
Resultat: sh: ocrmypdf /Users/Alex/Final/Test.pdf /Users/Alex/Final/Test1.pdf: No such file or directory

Ich habe auch schon versucht in meiner Verzweiflung ein Python script zu rufen welches ocrmypdf via os.system oder subprocess.call ruft. Doch auch hier ähnliches Ergebnis, lasse ich das Python Script direkt laufen geht es wunderbar und alles funktioniert komme ich mit do shell script ignoriert er os.system bzw. subprocess.call. Hier der Aufruf:
Code:
do shell script "python /Users/Alex/Final/callocr.py"

Also irgendetwas mache ich hier noch falsch, bin schon seit Tagen auf der Suche und komme nicht drauf.
 
Hallo,

wo hast Du es hin installiert?
Das wird der Grund sein, warum er es nicht findet.

Bei Deinem Weg 2 ist auch ein Fehler, da nach dem ersten Hochkomma ein Leerzeichen steht.
Somit wäre da ein Verzeichnis " " was aber nicht existiert und somit ist die Meldung korrekt.
Aber auch wenn Du das korrigierst wird Dich wieder Weg 1 einholen.

Viele Grüße
 
Hi, ja der Installationsort ist eine gute Frage ich habe es via

Code:
pip3 install ocrmypdf
installiert. Ein Idee wie ich den Ort finden kann ?

Danke Alex
 
ok ich glaube ich habe es gefunden
Code:
pip3 show ocrmypdf
bringt mir folgenden Ort:
Code:
Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
Dort finde ich dann auch die Programmdateien
 
sofern das Programm beim Aufruf gefunden wird, i.e. im PATH vorhanden ist, kannst du mit which prüfen:
zB "which whois" liefert /usr/bin/whois
 
Danke, als Ergebnis erhalte ich
Code:
/Library/Frameworks/Python.framework/Versions/3.6/bin/ocrmypdf
 
Ich habe mal probiert, das in den Aufruf zu integrieren (leider auch ohne Erfolg)
Aufruf:
Code:
do shell script "/Library/Frameworks/Python.framework/Versions/3.6/bin/ocrmypdf -h"
Code:
Ergebnis:
error "Traceback (most recent call last):
  File \"/Library/Frameworks/Python.framework/Versions/3.6/bin/ocrmypdf\", line 7, in <module>
    from ocrmypdf.__main__ import run_pipeline
  File \"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ocrmypdf/__main__.py\", line 53, in <module>
    if tesseract.version() < MINIMUM_TESS_VERSION:
  File \"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ocrmypdf/exec/tesseract.py\", line 56, in version
    stderr=STDOUT)
  File \"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py\", line 336, in check_output
    **kwargs).stdout
  File \"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py\", line 403, in run
    with Popen(*popenargs, **kwargs) as process:
  File \"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py\", line 707, in __init__
    restore_signals, start_new_session)
  File \"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py\", line 1326, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'tesseract'" number 1
 
Vielen Dank, tesseract liegt hier
/usr/local/bin/tesseract
Ich bin schon dabei mir deinen Link anzuschauen aber so ganz verstehe ich es noch nicht.
 
du musst halt vorher den PATH in dem script setzen, wie du den in der "normalen" shell hast.
das do shell script verwendet halt deine normalen shell einstellungen nicht …
 
Es läuft super vielen Dank! Ich habe so aufgerufen
Code:
do shell script "PATH=/usr/local/bin:$PATH; ocrmypdf /Users/Alex/Documents/Archiv/Final/Test.pdf /Users/Alex/Documents/Archiv/Final/Test1.pdf
Bekomme zwar kein Feedback mehr vom Script aber das ist nochmal ein anderes Thema. So 100%ig habe ich es auch
nicht verstanden aber es geht.
 
Zurück
Oben Unten