Skip to main content
 首页 » 编程设计

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

2025年05月04日20mq0036

我正在使用 subprocess.Popen 并在 mod_wsgi 下运行时出现 IOErrors。以下代码将在 python 术语或 django runserver 和 mod_python 下工作。如果将它放在 mod_wsgi (v2) 下,它会失败:(2, 'No such file or directory') 我已经尝试了很多涉及使用 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,看看问题是否消失。我想知道是否有其他人这样做过并且可以阐明这个问题。

请您参考如下方法:

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

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

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