2010-04-18 4 views
1

j'ai un script python qui se bloque sur:pdftotext ne trouve aucun des fichiers à convertir lorsqu'il est appelé dans un script python

subprocess.call(["pdftotext", pdf_filename]) 

l'être d'erreur:

OSError: [Errno 2] No such file or directory 

l'absolu chemin vers le nom de fichier (que je stocke dans un fichier journal que je débogue) est très bien; sur la ligne de commande, si je tape pdftotext <pdf_filename_goes_here> cela fonctionne pour l'un des mauvais noms de fichiers. mais lorsqu'il est appelé en utilisant subprocess en python je continue d'obtenir cette erreur.

que se passe-t-il ???

aussi, j'ai essayé sur l'interpréteur python, et cela a fonctionné!

>>> import subprocess 
>>> subprocess.call(["pdftotext", "/path/to/file/test.pdf"]) 
0 
>>> 

mise à jour: juste pour faire connaître à tout le monde, j'ai aussi essayé:

subprocess.call(["/usr/bin/pdftotext", "/path/to/file/test.pdf"]) 

qui a également donné la même erreur. et ive utilisé /usr/bin/pdftotext test.pdf directement et cela a fonctionné donc je sais que c'est le bon chemin vers l'exécutable pdftotext. d'autres suggestions?

Répondre

1

Vous obtiendrez également cette erreur s'il ne peut pas trouver l'exécutable sur le chemin ... essayez d'utiliser un chemin d'accès complet à pdftotext, et regardez comment le $ PATH pour subprocess.call est défini.

+0

ne serait-ce pas exclu puisque je pourrais le faire fonctionner sur l'interpréteur python? – sepiroth

+0

Êtes-vous en train d'hériter du $ PATH du parent? Si c'est le cas, peut-être que quelque chose le change avant le sous-processus.call(), ce qui ne se produit pas lorsque vous faites l'appel depuis le repl. – abeyer

+0

oui, je suis. bien, implicitement je dois être puisque je ne fais rien à $ PATH sciemment. – sepiroth

Questions connexes