我正在使用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,看看问题是否消失。我想知道是否有其他人这样做了,并且可以解释这个问题。
答案 0 :(得分:0)
该错误消息表示Popen
无法找到htmldoc
。通过$PATH
检查您的os.environ['PATH']
环境变量,并确保htmldoc
安装在其中一条路径中。
或者,您可以使用绝对路径呼叫Popen
。例如,
subprocess.Popen(['/usr/bin/htmldoc', ...