WindowsにてApache + mod_wsgi + flaskでPython3.7アプリを動かそうとしていた同僚から、
「基本的に動作したが、使いたいモジュールのimport文を追加しただけで動かなくなる」
という相談を受けたので調査した。
症状としては、Webブラウザでアクセスすると「・・・の待機中」となり、一向に表示されない。
アプリがハングアップしたか、停止しているように思われる。
import文をコメントにすると正常に表示される。
import文を有効にしてcmd.exeで実行しても正常に表示できる。
cmd.exeとApache上での実行環境の違いが原因と考えて調査した。
結論
https://living-sun.com/ja/ython/726892-flask-wsgi-application-hangs-when-import-nltk-python-flask-wsgi-nltk.html
を見たところ、httpd.confのディテクティブ WSGIApplicationGroup が足りないことに気づいた。
<VirtualHost *:80>
WSGIScriptAlias / "wsgi のパス"
<Directory "wsgiディレクトリのパス">
Require all granted
WSGIScriptReloading On
WSGIApplicationGroup %{GLOBAL} # ←これ
</Directory>
</VirtualHost>
この情報にたどり着くまでに多くの時間を浪費してしまった。
mod_wsgiの解説記事を書いている方はWSGIApplicationGroupも記載してください。
同じような事態に陥った人のためにメモしておきます。