调用脚本可以从终端工作,但不能从python subprocess.call工作



下面是我的代码。它在终端中调用时有效,但在python 2.7脚本中不起作用。

/usr/bin/python3.5 /var/www/html/web_map/simplemap/resources/py/align_raster.py
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-01_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-02_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-03_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-04_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-05_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-06_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-07_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-08_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-09_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-10_2013.tif,
/mnt/13aa104a-192c-43e5-95af-68aba6ac57a9/temp/85a0b2f9-c3fb-4913-9d70-a0c49f3649ba/chlor_a-modis-aqua-11_2013.tif
_aligned.tif

这是端子中的输出。

Segmentation fault (core dumped)

这是一个QGIS python独立脚本。它总是显示错误,但文件会处理所需的任何内容。

这不起作用。

cmd = '/usr/bin/python3.5 /var/www/html/web_map/simplemap/resources/py/align_raster.py {} {}'.format(
output_files_string, output_suffix
)
print(cmd)
result = call(cmd.split(), shell=False)

我也试过shell=True

这可能是由代码转储引起的,但有没有办法欺骗python说文件很好?

编辑:此解决方案修复了代码转储。

第2版:我认为这个问题与Apache CGI Python有关。因为它在仅从浏览器运行时失败。

使用subprocess

import subprocess
subprocess.Popen(cmd, shell=True)

您甚至可以通过设置来阻止输出到您的python控制台

import subprocess
subprocess.Popen(cmd,
shell=True,
stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT)

相关内容

最新更新