下面是我的代码。它在终端中调用时有效,但在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)