我有一个在服务器(apache)上运行的 Django Web 应用程序,我正在尝试使用以下方法从 Python 代码编译 Java 文件:
def comp(request):
p = subprocess.Popen(['javac',filepath],stdout=subprocess.PIPE,stderr=subprocess.PIPE, bufsize=100)
res, err =p.communicate()
return HttpResponse (err)
调用 comp 方法时,我得到 BadStatusLine 异常。我搜索了一下,发现子进程在尝试重新输出输出时可能会阻塞......所以我尝试了这段代码:
def comp(request):
p = subprocess.Popen(['/usr/bin/javac',filepath],stdout=subprocess.PIPE,stderr=subprocess.PIPE, bufsize=100)
while p.returncode == None:
res, err =p.communicate()
if p.returncode != 0:
err = "whatever"
return HttpResponse (err)
它仍然阻塞
我尝试将第一个代码直接写入 python 解释器,它运行良好,结果从输出中成功捕获我猜 subprocess 块可能与 apache 有关......老实说,我不知道该做什么下一步我已经厌倦了 python 文档 http://docs.python.org/2/library/subprocess.html中存在的许多方法中存在的许多方法,但没有一个有效
谢谢您的帮助。