Django で BeautifulSoup バージョン 4 (mod_python で Apache2 を使用) を使用して、オンザフライで HTML ページをレンダリングしようとしていました。ただし、HTML 文字列を BeautifulSoup コンストラクター (以下のコードを参照) に渡すとすぐに、ブラウザーは Web サーバーを待ってハングアップします。CLIで同等のコードを試してみましたが、魅力的に機能します。したがって、これは BeautifulSoups 環境、この場合は Django + Apache + mod_python に関連するものだと推測しています。
import bs4
import django.shortcuts as shortcuts
def test(request):
s = bs4.BeautifulSoup('<b>asdf</b>')
return shortcuts.render_to_response('test.html', {})
pip を使用して BeautifulSoup をインストールしpip install beautifulsoup4
ました。標準の Debian パッケージを使用して BeautifulSoup3 をインストールしようとしましapt-get install python-beautifulsoup
たが、次の同等のコードは (ブラウザーと CLI の両方から) 正常に動作します。
from BeautifulSoup import BeautifulSoup
import django.shortcuts as shortcuts
def test(request):
s = BeautifulSoup('<b>asdf</b>')
return shortcuts.render_to_response('test.html', {})
Apache のアクセス ログとエラー ログを調べましたが、停止した要求に何が起こっているかについての情報は表示されません。/var/log/syslog と /var/log/messages も確認しましたが、それ以上の情報はありません。
使用した Apache 構成は次のとおりです。
<VirtualHost *:80>
DocumentRoot /home/nandersson/src
<Directory /home/nandersson/src>
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE app.settings
PythonOption django.root /home/nandersson/src
PythonDebug On
PythonPath "['/home/nandersson/src'] + sys.path"
</Directory>
<Location "/media/">
SetHandler None
</Location>
<Location "/app/poc/">
SetHandler None
</Location>
</VirtualHost>
これをさらにデバッグする方法がわかりません。バグかどうかもわかりません。この問題の根底にたどり着く方法、または同様の問題に遭遇した人はいますか?