簡體   English   中英

Obspy.read() 從 mod_python apache 模塊調用時不起作用

[英]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)

那么它的工作原理。

我試過的:

  1. 更改文件/文件夾的權限。 腳本和文件在我的 /var/www/cgi-bin 目錄中。 將每個人都可讀的分配給文件和目錄不起作用
  2. 將文件移動到不同的文件夾
  3. 更改文件/目錄的所有者(到 www-data)

但它仍然不起作用。

我不明白這是 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM