pdf2image Problem bei Windows Portierung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Davilesh
User
Beiträge: 2
Registriert: Donnerstag 28. Mai 2020, 19:48

Liebe Community,

ich wende mich mit meinem Problem an euch, dass bei einem in eine .exe konvertierten Python-Script auftritt.

Geschrieben habe ich ein kleines Programm, dass einige Schritte durchführt (Skalieren von Bildern usw.) - nicht weiter wichtig.
Auf meinem Rechner (Python ist natürlich installiert) funktioniert alles einwandfrei - sowohl das Programm selbst als auch die mit dem "PyInstaller" (https://www.pyinstaller.org/) als .exe kompilierte Version. Diese brauche ich, da auf den Zielrechnern kein Python installiert werden kann.

Problematisch wird es auf diesem Zielrechner, wenn das Programm die programmierten Operationen durchführen soll. Das GUI startet, der User gibt die entsprechenden Parameter ein und nach dem drücken des "Start"-Buttons gibt es die folgende Fehlermeldung:

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "c:\users\USER\appdata\local\programs\python\python38-32\lib\site-packages\pdf2image\pdf2image.py", line 350, in _page_count
  File "c:\users\USER\appdata\local\programs\python\python38-32\lib\subprocess.py", line 854, in __init__
  File "c:\users\USER\appdata\local\programs\python\python38-32\lib\subprocess.py", line 1307, in _execute_child
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\USER\appdata\local\programs\python\python38-32\lib\tkinter\__init__.py", line 1883, in __call__
  File "C:\Users\USER\Desktop\PyInstaller\downloader.py", line 57, in start
  File "c:\users\USER\appdata\local\programs\python\python38-32\lib\site-packages\pdf2image\pdf2image.py", line 80, in convert_from_path
  File "c:\users\USER\appdata\local\programs\python\python38-32\lib\site-packages\pdf2image\pdf2image.py", line 354, in _page_count
pdf2image.exceptions.PDFInfoNotInstalledError: Unable to get page count. Is poppler installed and in PATH?


Soweit ich es verstanden hatte, ist die Nutzung aller Funktionen nach der Kompilierung mit "PyInstaller" auf einem System ohne installiertes Python möglich. Jetzt sieht es so aus als wären die Funktionen, die pdf2image.py bereitstellt, nicht mit herüber portiert worden. Und ich weiß nicht, wie ich dieses Problem lösen kann.

Hat jemand eine Idee? Vielen Dank im voraus!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Es sieht so aus als ob pdf2image externe Hilfsprogramme braucht. Und die werden nicht mitgebündelt. Du musst dafür wahrscheinlich ein Rezept schreiben, welches pyinstaller das beibringt.

https://pyinstaller.readthedocs.io/en/s ... wrong.html
Davilesh
User
Beiträge: 2
Registriert: Donnerstag 28. Mai 2020, 19:48

Danke für den Link!

Ich habe mich dort umgesehen und versucht, das Modul pdf2image sowohl über einen "hook", der laut log auch angesprochen wird, als auch über das .spec-File sowie über ein Kommando als hidden module einzubinden.

Klappt leider alles nicht.

Mit py2exe habe ich es nun auch probiert und hier wird das Modul ebenfalls nicht mitgebündelt.

Hat noch jemand eine Idee?
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Das Modul wird doch mit in das Archiv gepackt.
Oder siehst du irgendwo eine Fehlermeldung, dass das Modul nicht gefunden wird?

Die Fehlermeldung ist doch eindeutig.
Als du pdf2image auf deinem System installiert hast, musstest du mehr machen als das Modul zu installieren. Die Dokumentation sagt, genau wie die Fehlermeldung: Ich bin ein Wrapper. "Ich benutze das Programm "poppler" und das muß im PATH zu finden sein."

Du musst also dieses externe Programm über einen Hook einbinden. Ob das geht und lizenzrechtlich möglich ist, musst du recherchieren.
Antworten