[英]Obspy.read() not working when called from mod_python apache module
我正在嘗試創建一個簡單的 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調用腳本時,它運行良好,直到最后一行,然后它甚至不打印任何內容,但再次沒有輸出錯誤
甚至更奇怪,如果我改變最后一行
st = obspy.read(my_filename, headonly=True)
那么它的工作原理。
我試過的:
但它仍然不起作用。
我不明白這是 obspy 模塊的問題還是 apache mod_python 的一些限制。
關於如何解決這個問題的任何想法?
我從 obspy github 問題頁面收到的最佳答案如下
它似乎與內存分配問題有關。 您可以嘗試更新到最新的 ObsPy 存儲庫版本,因為我們最近對其進行了一些更改,看看是否能解決您的問題。 我很確定這不是與權限相關的問題。
否則,如果您不依賴於使用 mod_python,您可以嘗試使用非常多且通常非常好的 Python Web 框架之一。 如果您只需要它用於簡單的 Web 服務,那么微框架可能很適合您:
http://flask.pocoo.org/ http://www.pylonsproject.org/ http://www.cherrypy.org/當然 Django 也可能對你有吸引力。
干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.