Может ли subprocess.Popen использоваться при вызове из кода Py, работающего под mod_wsgi в Apache2 - PullRequest
2 голосов
/ 10 августа 2010

Я использую subprocess.Popen и получаю IOErrors при запуске под mod_wsgi. Следующий код будет работать в терминах Python или на сервере запуска django и под mod_python. Если вы поместите его в mod_wsgi (v2), произойдет сбой: (2, «Нет такого файла или каталога») Я перепробовал много вариантов, связанных с использованием subprocess.PIPE. Я попытался переопределить stdout и использовать директивы httpd, чтобы отключить жалобы mod_wsgi на использование stdout. Я недавно пытался обновить до версии 3.

import subprocess

input_file = 'test.html'

p = subprocess.Popen(['htmldoc','-f', 'output.pdf', '--book', input_file])

p.communicate()

len(open('output.pdf').read())

Мои усилия по тестированию состоят в том, чтобы вернуться к mod_python и посмотреть, исчезнет ли проблема. Я хотел бы знать, если кто-то еще сделал это и может пролить свет на эту проблему.

1 Ответ

0 голосов
/ 10 августа 2010

Это сообщение об ошибке означает, что Popen не может найти htmldoc.Проверьте переменную окружения $PATH через os.environ['PATH'] и убедитесь, что htmldoc установлен в одном из путей там.

В качестве альтернативы, вы можете вызвать Popen, используя абсолютный путь.Например,

subprocess.Popen(['/usr/bin/htmldoc', ...
...