我正在尝试创建一个简单的Web服务,该服务读取MSEED文件并输出一些信息。
最合理的选择似乎是使用python和优秀的obspy模块(用于地震学/地震观测站的Python工具箱),它在地震学界广泛使用。
我成功地阅读了一个文件,并通过这个简单的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 它工作得很好,直到最后一行,然后它甚至不打印任何东西,但再次没有输出错误
Eveno更奇怪,如果我用
更改最后一行st = obspy.read(my_filename, headonly=True)
然后它有效。
我尝试了什么:
但它仍然不起作用。
我不明白它是obspy模块的问题还是apache mod_python的一些限制。
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
我从obspy github issue page收到的最佳答案如下
这似乎与内存分配问题有关。你可以尝试 更新到我们最近制作的最新ObsPy存储库版本 对此进行更改并查看是否可以解决您的问题。我很确定 它不是与权限相关的问题。
否则,如果你不喜欢使用mod_python,你可以尝试一下 很多很常见的Python Web框架之一。 如果您只需要一个简单的Web服务,微框架可能会 很适合你:
http://flask.pocoo.org/ http://www.pylonsproject.org/ http://www.cherrypy.org/当然,Django也可能会吸引你。
干杯!