我正在尝试制作一个简单的 Web 服务,它可以读取 MSEED 文件并输出一些相关信息。
最合理的选择似乎是使用Python与优秀的obspy模块(A Python Toolbox for seismology/seismological observatories),它在地震学界被广泛使用。
我使用这个简单的 python 代码成功地读取了一个文件并从中获取了一些信息:
import obspy
import numpy
import sys
my_filename = "SOME FILE"
my_start_time = "2012-01-01T08:00:00"
my_end_time = "2012-01-01T09:00:00"
dt = obspy.UTCDateTime(my_start_time)
et = obspy.UTCDateTime(my_end_time)
st = obspy.read(my_filename, starttime=dt, endtime=et)
....then do something....
现在,如果我想将它实现为 Web 服务,在几个不同的选择中,我可以在 Apache 上安装 mod_python,并以不同的方式调用这样的脚本。
我执行以下操作(脚本位于名为 的文件中test.py
):
from mod_python import util
import obspy
import numpy
import sys
def index(req):
[...]
startdate="2012-01-01T08:00:01"
enddate="2012-01-01T08:10:00"
myfilename=" SOME FILE"
dt = obspy.UTCDateTime(startdate)
et = obspy.UTCDateTime(enddate)
##### read file
st = obspy.read(my_filename, starttime=dt, endtime=et) ******
[...]
发生的情况是,它在最后一行挂起而没有给出任何错误。 从我的服务器 http://localhost.my/cgi-bin/test.py调用脚本时, 它运行良好,直到最后一行,然后它甚至不打印任何东西,但再次没有输出错误
更奇怪的是,如果我改变最后一行
st = obspy.read(my_filename, headonly=True)
然后它工作。
我尝试了什么:
- 更改文件/文件夹的权限。脚本和文件位于我的 /var/www/cgi-bin 目录中。将每个人都可读分配给文件和目录不起作用
- 将文件移动到不同的文件夹
- 更改文件/目录的所有者(到 www-data)
但它仍然不起作用。
我不明白这是 obspy 模块的问题还是 apache mod_python 的一些限制。
关于如何解决这个问题的任何想法?