2013-05-17 37 views
0

叫我試圖做一個簡單的Web服務,用於讀取MSEED文件,輸出上的一些信息時。Obspy.read()不工作從mod_python的Apache模塊

最合理的選擇似乎是使用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服務,在幾個不同的choiche我可以安裝中在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) 

然後它的工作。

我的嘗試:

  1. 允許更改文件/文件夾。腳本和文件都在我的/ var/WWW/cgi-bin目錄。分配可讀大家對文件和目錄沒有工作
  2. 將文件移動到不同的文件夾
  3. 改變文件/目錄的所有者(到www數據)

但它仍然無法正常工作。

我不明白,如果這是obspy模塊的問題或apache mod_python的一些限制。

如何解決這個問題的任何想法?

回答

0

我從obspy github issue page收到的最好的答案是以下

這似乎與內存分配問題。你可以嘗試 更新到最新ObsPy庫版本,我們最近做了一些改變 到,看看是否能解決您的問題。我敢肯定 它不是一個權限相關的問題。否則,如果你不是使用mod_python,你可以嘗試使用 ,這是很多很多很好的Python web框架之一。 如果你只需要一個簡單的Web服務,一個microframework可能 適合你得好:

http://flask.pocoo.org/http://www.pylonsproject.org/ http://www.cherrypy.org/當然在Django中還可能會吸引你。

乾杯!