Seite 2 von 2

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 14:32
von sparrow
Nächster Schritt:

Code: Alles auswählen

import sys
print(f"Sys Version: {sys.version}")
import ocrmypdf
print("after import")
print(f"Path: {ocrmypdf.__path__}")
print(ocrmypdf)
print(f"Version: {ocrmypdf.__version__}")
print(f"Function: {ocrmypdf.ocr})")
print("done")

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 14:51
von HerrYves
@sparrow:
Ich danke Dir für Deine Beharrlichkeit.
Hier die Ausgabe:

Code: Alles auswählen

Sys Version: 3.7.3 (default, Jul 25 2020, 13:03:44) 
[GCC 8.3.0]
after import
Path: ['/usr/lib/python3/dist-packages/ocrmypdf']
<module 'ocrmypdf' from '/usr/lib/python3/dist-packages/ocrmypdf/__init__.py'>
Version: 8.0.1+dfsg
Traceback (most recent call last):
  File "Forum_test.py", line 17, in <module>
    print(f"Function: {ocrmypdf.ocr})")
AttributeError: module 'ocrmypdf' has no attribute 'ocr'
Könntest Du mir als Padawan kurz erklären was Du darin siehst?!
Danke

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 15:04
von sparrow
Irgend etwas musst du anders gemacht haben. Denn nun funktioniert der Import grundsätzlich.
Das vorherige Verhalten konnte ich nur dadurch nachstellen, dass ich ein leeres Verzeichnis im Suchpfad ablege, das "ocrmypdf" heißt. Dann findet er das leere Verzeichnis statt eines Moduls. Kein schönes Verhalten, wie ich gerade lerne.

So, das ist jetzt ja nicht mehr das Problem. Aber: Das ist eine uralte ocrmypdf-Version. Ich denke nicht, dass die mit pip installiert wurde. Aktuell ist die Version 11.5.0. Und ich nehme an, die API hat sich seitdem verändert.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 15:10
von HerrYves
OK, das habe ich verstanden.
Im Moment kann ich (mit meinem Wissensstand) nur per apt oder pip3 installieren.
Das habe ich gemacht.
Habe ich eine andere Möglichkeit die aktuelle Version zu installieren?

Anders gemacht habe ich, dass ich die Installation wie schon geschrieben rückgängig gemacht habe und per PIP3 das Modul neu installiert.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 15:15
von sparrow
Ja, du kannst die aktuelle Version mit pip installieren. Das hast du möglicherweise gemacht.
Du hast aber auch mit apt installiert. Und damit kam eine uralte Version. Willkommen bei Debian.

Ich bin nicht mehr tief genug drin in Debian, aber ein beherztes "sudo apt-get purge ocrmypdf" sollte die Version aus dem Debian-Paketquellen von der Platte entfernen und ein anschließendes "pip install ocrmypdf" hoffentlich die aktuelle Version über die Python-Bordmittel installieren.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 15:30
von HerrYves
So, habe ich gemacht.
Lief jetzt eine Weile und hat zwischen durch diese Fehlermeldung gebracht:

Code: Alles auswählen

Failed building wheel for pikepdf
  Running setup.py clean for pikepdf
Failed to build pikepdf
Installing collected packages: pikepdf, ocrmypdf
  Running setup.py install for pikepdf ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ku884k3z/pikepdf/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-u5wpkfk6/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    /usr/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'cmd_class'
      warnings.warn(msg)
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-armv6l-3.7
    creating build/lib.linux-armv6l-3.7/pikepdf
    copying src/pikepdf/objects.py -> build/lib.linux-armv6l-3.7/pikepdf
    copying src/pikepdf/jbig2.py -> build/lib.linux-armv6l-3.7/pikepdf
    copying src/pikepdf/_methods.py -> build/lib.linux-armv6l-3.7/pikepdf
    copying src/pikepdf/codec.py -> build/lib.linux-armv6l-3.7/pikepdf
    copying src/pikepdf/_version.py -> build/lib.linux-armv6l-3.7/pikepdf
    copying src/pikepdf/_cpphelpers.py -> build/lib.linux-armv6l-3.7/pikepdf
    copying src/pikepdf/__init__.py -> build/lib.linux-armv6l-3.7/pikepdf
    creating build/lib.linux-armv6l-3.7/pikepdf/models
    copying src/pikepdf/models/outlines.py -> build/lib.linux-armv6l-3.7/pikepdf/models
    copying src/pikepdf/models/matrix.py -> build/lib.linux-armv6l-3.7/pikepdf/models
    copying src/pikepdf/models/metadata.py -> build/lib.linux-armv6l-3.7/pikepdf/models
    copying src/pikepdf/models/image.py -> build/lib.linux-armv6l-3.7/pikepdf/models
    copying src/pikepdf/models/encryption.py -> build/lib.linux-armv6l-3.7/pikepdf/models
    copying src/pikepdf/models/__init__.py -> build/lib.linux-armv6l-3.7/pikepdf/models
    copying src/pikepdf/py.typed -> build/lib.linux-armv6l-3.7/pikepdf
    running build_ext
    building 'pikepdf._qpdf' extension
    creating build/temp.linux-armv6l-3.7
    creating build/temp.linux-armv6l-3.7/src
    creating build/temp.linux-armv6l-3.7/src/qpdf
    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/tmp/pip-build-env-41n2d4lp/lib/python3.7/site-packages/pybind11/include -I/usr/include/python3.7m -c src/qpdf/annotation.cpp -o build/temp.linux-armv6l-3.7/src/qpdf/annotation.o -std=c++14 -fvisibility=hidden -g0
    src/qpdf/annotation.cpp:11:10: fatal error: qpdf/Constants.h: Datei oder Verzeichnis nicht gefunden
     #include <qpdf/Constants.h>
              ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ku884k3z/pikepdf/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-u5wpkfk6/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-install-ku884k3z/pikepdf/
Kann ich das separat nachinstallieren?
Ansonsten kommt jetzt folgende Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "OCR-Final1.py", line 4, in <module>
    import ocrmypdf
ModuleNotFoundError: No module named 'ocrmypdf'
und die Ausgabe aus der Versionskontrolle:

Code: Alles auswählen

Sys Version: 3.7.3 (default, Jul 25 2020, 13:03:44) 
[GCC 8.3.0]
Traceback (most recent call last):
  File "Forum_test.py", line 12, in <module>
    import ocrmypdf
ModuleNotFoundError: No module named 'ocrmypdf'
:?:

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 15:34
von HerrYves
:shock: Ich finde jetzt keine Ordner OCRmyPDF im /usr/lib/python3/dist-packages.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 15:43
von sparrow
Offensichtlich hängt ocrmypdf von pikepdf ab, was für das System erst übersetzt werden müsste.
Ich habe aber seit Jahren kein Linux mehr, deshalb weiß ich nicht, wie nun das weitere Vorgehen wäre.

Auch um das nochmal zu sagen: Ich weiß nicht, ob es tatsächlich an der veralteten Version liegt - finde das aber naheliegend.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 15:46
von HerrYves
@sparrow:
Ich danke Dir auf alle Fälle recht herzlich.
Du hast mich, auch was Fehlersuche angeht wirklich weiter gebracht.
Dir eine gute Zeit.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 16:00
von __blackjack__
Ich denke das Problem ist ein `ocrmypdf`-Verzeichnis. Das muss ja nicht leer sein. Wenn da keine `__init__.py` drin ist, dann wird das von aktuellen Python-Versionen als Namespace-Package angesehen. Also wenn Du das Problem hast, ist dann zufällig ein `ocrmypdf`-Verzeichnis im Suchpfad?

Ich stelle gerade fest, dass das ein totales Kack-„Feature“ ist, dass keine `__init__.py` mehr da sein muss. Man kann sich Skripte damit unbrauchbar machen in dem einfach zufällig (oder auch nicht) ein Verzeichnis mit dem Namen eines benötigten Moduls im Modulsuchpfad steht, der ja üblicherweise auch das Verzeichnis in dem das Skript liegt mit enthält. Wenn man also beispielsweise ein Skript im Heimatverzeichnis oder auf dem Desktop ablegt das CSV-Daten mit dem `csv`-Modul verarbeitet, darf man im Heimatverzeichnis oder auf dem Desktop kein Verzeichnis mit dem Namen `csv` anlegen, denn dann geht das Skript ”kaputt”. 🤦

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 16:03
von sparrow
@__blackjack__: Ich hab das Feauture gerade erst gefunden und bin regelrecht schockiert. Aber schau mal, um 14:51 war das Modul in Ordnung, die gewünschte Funktion aber trotzdem nicht vorhanden. Deshalb denke ich, dass es da an der alten Version lag.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 16:42
von HerrYves
@__blackjack__:
Ich verstehe die Frage nach dem Suchpfad nicht ganz.
Du hast dahin gehend recht, dass das Problem der OCRmyPDF Ordner ist. Nach meinem Aufräumen des OCRmyPDF kann ich es nicht mehr installieren und der Ordner ist auch nicht mehr da.

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 16:56
von HerrYves
@__blackjack__ @sparrow:
Ist das ev. auch der Grund warum es auf Ubuntu läuft und auf dem RasPi nicht?
Weil die Installation auf unterschiedliche Versionen zugreift?

Re: OCRmyPDF API läuft auf Ubuntu aber nicht auf Raspberry Pi

Verfasst: Donnerstag 21. Januar 2021, 16:59
von HerrYves
@sparrow:
Ich habe jetzt die "alte" Version wieder per apt installiert und es kommt wieder der Fehler von 14:51.
Ich gehe mal davon aus, dass es für den RasPi keine Version gibt. Oder?