仕事で開発・管理しているDjango製のWebアプリケーションで、回帰係数を算出する必要があったのでscipyのstatsモジュールをインストールすることにしました。
scipy自体はpipで
#pip install scipy
で一瞬でインストール完了。
python立ち上げて
from scipy import stats
x = [1,2,3,4,5]
y = [10,20,30,40,50]
coefficient,intercept,r,p,se = stats.linregress(x,y)
これで問題なく回帰係数を取得できることを確認。
ちなみにstats.linregress(x,y)の戻り値は、
回帰係数,切片,相関係数R,p値,標準誤差(standard error)
の5つです。
まあ楽ちんと思い、Djangoアプリの方に実装をし、テストをしてみたところ、
・・・動かない。
エラーを吐くというのではなく、文字通り、動かない。
ページを読み込んだまま、レスポンスが返ってこない。
しかも機能を搭載した部分だけが動かないのではなく、アプリケーション全体が動かなくなっている。
あれ?もしかしたらサーバ自体に何か起こったかな?と調べてみても、特になにも不具合はない。
そして実装追加した部分を削除して再びアプリを立ち上げると、きちんと動く。
はて、これは困ったぞと調べてみたところ、どうやらapache設定ファイルの問題らしく、
apacheのDjangoのためのWSGIの設定をしている部分、
WSGIScriptAlias / /path/to/your/wsgi/file
のところに
WSGIScriptAlias / /path/to/your/wsgi/file
WSGIApplicationGroup %{GLOBAL}
と1行追加してあげればよいとのこと。(参照サイト)
早速設定を直してapacheを再起動。
無事に動きました!
エラーもなにも出ないもんだから、原因特定までに無駄に時間を使ってしまいました。
もし同じようにお困りの方の助けになれば幸いです。
関連記事:
ハードディスクをSSDに交換しました
iMac 21.5インチ(Late 2012)のメモリを自分で交換してみた