1
奇怪的是,當Django調用下面的代碼Popen
返回returncode=1
與空err
。但是當我手動運行這個程序時,它工作正常。我不知道如何調試,因爲err
是空的。這是我的代碼(docsplit PPTX格式轉換爲PDF):Popen命令失敗返回碼1
from subprocess import Popen, PIPE
def execute_commands(commands):
for command in commands:
# I know the consequences of shell=True
process = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
try:
out, err = process.communicate()
errcode = process.returncode
except (KeyboardInterrupt, SystemExit):
process.terminate()
process.wait()
raise
if errcode != 0:
raise Exception('ErrorCode %s: %s' % (str(errcode), err))
if __name__ == '__main__':
commands = ["/usr/bin/docsplit pdf --output %s %s" % ('test.pdf', 'test.pptx')]
execute_commands(commands)
我的環境是:
- 的Python 2.7.3
- 的Django 1.4.4
- 的Ubuntu 12.04