2011-04-26 6 views
0

Lorsque je lance mon application, qui convertit pdf en png, à partir du serveur django, la conversion fonctionne correctement. Mais quand je lance ceci à partir d'un serveur Apache, j'obtiens cette erreur: GhoscriptError: Fatal. La lecture de la sterr de Ghostscript, il ditpython-django Problème d'apache de Ghostscript

Initialization file gs_init.ps does not begin with an integer.

Il semble une erreur d'initialisation pour moi, mais je ne sais pas comment résoudre ce problème.

En utilisant Ubuntu à propos. Le dossier de gs est dans le chemin, donc je ne suis pas sûr si cela cause le problème.

Voici mon code qui génère les images

def PDF_to_png(input,output):

args = [ 
"-dSAFER", 
"-dBATCH", "-dNOPAUSE", "-sDEVICE=png16m", 
"-r300", 
"-sOutputFile=" + os.path.join(output,input.file_name_without_extension)+"_%d.png", 
input 
] 
ghostscript.Ghostscript(*args) 
+0

Montrez du code, s'il vous plaît. –

Répondre

1

L'erreur vous dit que le fichier gs_init.ps qui se trouve normalement dans gs/ressources/Init/ est pas valide. De l'en-tête du fichier:

------------------------------------------------------------------------ 
% Interpreter library version number 
% NOTE: the interpreter code requires that the first non-comment token 
% in this file be an integer, and that it match the compiled-in version! 
902 
------------------------------------------------------------------------ 

Vous pouvez construire GS avec les ressources intégrées ou sur le disque, je ne sais pas que vous construisez avec Ubuntu obtenir, mais il semble que ce soit il y a un gs_init.ps dans la Chemin SG qui a été endommagé. Cela signifie probablement que vous utilisez une version avec les ressources sur le disque.

Essayez d'abord de démarrer Ghostscript. Si cela fonctionne alors c'est quelque chose à voir avec l'environnement qui est différent lorsque vous exécutez l'instance défaillante. Recherchez les variables d'environnement qui commencent GS_ (en particulier * GS_LIB *). Vous devriez aussi essayer la définition même où GS devrait chercher sur la ligne de commande en incluant quelque chose comme:

-I/usr/src/gs/Resource 

Ce Je ncludes le répertoire spécifié comme un chemin de recherche de Ghostscript (NB GS n'utilise pas le Variable d'environnement PATH). GS recherchera ici les fichiers d'initialisation avant de poursuivre son mécanisme de repli.