在我的Python/Django代码中,我调用gdalbuildvrt
进程。这个过程应该创建一个.VRT文件,但它不会。为了检查它,我将子进程输出写入调试文件。这就是我要做的事:如何在Python/Django中调试子进程调用
process = subprocess.Popen(["gdalbuildvrt", mosaic, folder], stdout=subprocess.PIPE)
stdout = process.communicate()[0]
with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "debug.txt"), 'w') as file:
file.write('{}'.format(stdout) + " -> " + mosaic)
结果我看到这个文件DEBUG.TXT:
b'0...10...20...30...40...50...60...70...80...90...100 - done.\n' -> /var/www/vwrapper/accent/accent/layers/raw/mosaic.vrt
所以,你可以看到调试语句的第一部分说,它”好的:
0...10...20...30...40...50...60...70...80...90...100 - done.
而第二部分说,应该创建/var/www/vwrapper/accent/accent/layers/raw/mosaic.vrt
。但是,当我转到目标文件夹并刷新它时,我看不到mosaic.vrt文件。那么,这可能有什么问题,我该如何解决?我应该补充说,在Windows机器上它是100%好的,但在CentOS上它却没有。
日志'stderr'和'.returncode' ......这就是任何问题都会。 – TemporalWolf
@TemporalWolf。你会如此善意地详细说明这一点吗?如果你愿意,你可以做出完整的答案。 – Jacobian