我有一个脚本,通过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运行它,它不会产生任何错误消息,也不会产生正确的控制台输出(基本上是说“createdfileblah at blah”),但不会产生任何文件,而它通常会生成两个。我没有得到任何权限错误或任何东西,并已确保目录的chmoded适当。你知道吗
我怀疑你的进程从来没有开始关闭这个文件(因为你不能显式地关闭它,因为你没有引用它-当作为脚本运行时-解释器会停止-但是Django在加载的进程中的工作方式不同等等…),而且它不够大,不能被刷新-试着移出你的
open
。你知道吗另外,确保在进行更改时确保Django服务器重新启动/类似于确保代码重新加载和更改生效。你知道吗
相关问题 更多 >
编程相关推荐