2017-10-30 5 views
0

Ich möchte eine pdf Datei öffnen und nur die erste Seite abrufen und als Bild speichern. Ich habe this solution verwendet und es hat perfekt funktioniert. Es funktioniert immer noch in meiner lokalen Umgebung, aber es funktioniert in Travis vor kurzem nicht.Wand kann keine Datei öffnen

Also ja, dieser Code ist von meinem unittest und ich versuche es in Travis zu laufen. Ich habe einen Test pdf Datei und ich möchte es öffnen:

import os 
from wand.image import Image 

root_path = 'some/correct/path' 
filename = 'two_page_pdf.pdf' 
full_path = os.path.join(root_parg, filename) 
Image(file=open(full_path, mode='rb'), resolution=300) # Error!!! 

----------------------------------------------- 
DelegateError        
Traceback (most recent call last) 
<ipython-input-2-1b1fd9537a14> in <module>() 
----> 1 Image(file=open(full_path, mode='rb'), resolution=300) 

~/virtualenv/python3.5.3/lib/python3.5/site-packages/wand/image.py in __init__(self, image, blob, file, filename, format, width, height, depth, background, resolution) 
    2738             b'buffer.' + format) 
    2739     if file is not None: 
-> 2740      self.read(file=file, resolution=resolution) 
    2741     elif blob is not None: 
    2742      self.read(blob=blob, resolution=resolution) 

~/virtualenv/python3.5.3/lib/python3.5/site-packages/wand/image.py in read(self, file, filename, blob, resolution) 
    2820    r = library.MagickReadImage(self.wand, filename) 
    2821   if not r: 
-> 2822    self.raise_exception() 
    2823 
    2824  def close(self): 

~/virtualenv/python3.5.3/lib/python3.5/site-packages/wand/resource.py in raise_exception(self, stacklevel) 
    220    warnings.warn(e, stacklevel=stacklevel + 1) 
    221   elif isinstance(e, Exception): 
--> 222    raise e 
    223 
    224  def __enter__(self): 

DelegateError: Postscript delegate failed `/tmp/magick-5ypXvY6l': No such file or directory @ error/pdf.c/ReadPDFImage/677 

Datei prüfen:

os.path.isfile(full_path) == True 
len(open(full_path, mode='rb').read()) == 18386 

Env:

  • Python 3.5.3
  • Wand 0.4.4

Was ist los? Ich stecke fest. Hilfe

UPD 1 bitte:

Imagemagick Pack daran beteiligt zu sein scheint! Letzter Test ist bestanden, wenn es Version 8:6.6.9.7-5ubuntu3.9 und es wird gestoppt, nachdem Update zu arbeiten 8:6.7.7.10-6ubuntu3.9

UPD 2:

.travis.yml Datei.

language: python 
sudo: false 
cache: pip 
python: "3.5" 
services: 
    - rabbitmq 
addons: 
    apt: 
    packages: 
    - imagemagick 
    - python-enchant 
+0

Können Sie Ihre Travis-Skript? Ich glaube nicht, dass die Standard-VM PDF-Delegaten enthält, also müssen Sie einige Pakete "apt-get". – emcconville

+0

@emcconville gepostet! – zvadym

+1

Versuchen Sie 'Ghostscript' zu den' addons> apt> Paketen hinzuzufügen – emcconville

Antwort

0

Der Grund für diesen Fehler war der Mangel an PDF Delegierten (ghostscript). Ich habe gerade diese App zu addons > apt > packages travis.yml Abschnitt hinzugefügt

Verwandte Themen