从Apache2中的mod_wsgi下运行的py代码调用时,可以使用subprocess.Popen

时间:2010-08-09 22:00:11

标签: python apache2 subprocess mod-wsgi

我正在使用subprocess.Popen并在mod_wsgi下运行时获取IOErrors。以下代码将在python术语或django runserver中运行,并在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 :(得分:0)

该错误消息表示Popen无法找到htmldoc。通过$PATH检查您的os.environ['PATH']环境变量,并确保htmldoc安装在其中一条路径中。

或者,您可以使用绝对路径呼叫Popen。例如,

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