我有一个通过 Django 视图执行以下代码的脚本:
# generate dag file
try:
commandString = [
'python',
os.path.join('/srv/nfsshare/transcode50', userFolder, directory, 'condor_execute.py')
]
subprocess.check_call(commandString,
stdout=open('/srv/nfsshare/transcode50/output2.txt', 'w'),
stderr=subprocess.STDOUT)
except Exception, e:
open('/tmp/test_exception.txt', 'w').write(str(e))
raise
应该做的是执行我生成的 Python 文件。如果我从服务器的命令提示符(即python /srv/nfsshare/transcode50/cogden/algorithms/condor_execute.py
)运行那个确切的命令,它就可以正常工作并生成它应该在该目录中的所需文件。但是,如果我从 Django 运行它,它不会产生错误消息,会产生正确的控制台输出(基本上说“在 blah 处创建文件”的消息),但是当它通常生成两个时,不会产生任何文件。我没有收到任何权限错误或任何东西,并确保目录已正确修改。