scipyをDjangoで使おうとしたらアプリ自体が動かなくなった

仕事で開発・管理している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)のメモリを自分で交換してみた

カテゴリー: django, python, 技術的なこと パーマリンク