BeautifulSoup 在 Django 视图中使 WSGI 超时
BeautifulSoup inside Django view makes WSGI timeout
出于一个奇怪的原因,当我在 Django 的视图中实例化一个 BeautifulSoup 对象时,WSGI 超时。感谢您提供任何帮助,因为我将头撞在墙上几个小时,却找不到问题的根源。
观点:
def index(request):
soup = BeautifulSoup('<b>Bold</b>') # Removing this line solve the proble
return HttpResponse('Hello')
Apache 日志中的错误信息:
[wsgi:error] [pid 4014] [client 127.0.0.1:50892] Timeout when reading response headers from daemon process 'test.local': /htdocs/test/test/wsgi.py
更新:这似乎是 BeautifulSoup 中的 bug,但是没有解决方案。
使用 C 扩展模块的 Python 的各种第三方包,包括 scipy、numpy 和 Beautifulsoup,只能在 Python 主解释器中工作并且不能在子解释器中使用,因为默认使用 mod_wsgi。您可以在下面找到 link.
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API
您可以通过在您的 conf 文件中写入以下行来解决这个问题。
WSGIApplicationGroup %{GLOBAL}
如果运行在同一台服务器上运行多个 WSGI 应用程序,您将要开始研究使用守护程序模式,因为某些框架不允许多个实例在同一解释器中 运行。 Django 就是这种情况。因此使用守护进程模式,因此每个进程都在自己的进程中,并强制每个进程在各自的守护进程模式进程组的主解释器中 运行。
出于一个奇怪的原因,当我在 Django 的视图中实例化一个 BeautifulSoup 对象时,WSGI 超时。感谢您提供任何帮助,因为我将头撞在墙上几个小时,却找不到问题的根源。
观点:
def index(request):
soup = BeautifulSoup('<b>Bold</b>') # Removing this line solve the proble
return HttpResponse('Hello')
Apache 日志中的错误信息:
[wsgi:error] [pid 4014] [client 127.0.0.1:50892] Timeout when reading response headers from daemon process 'test.local': /htdocs/test/test/wsgi.py
更新:这似乎是 BeautifulSoup 中的 bug,但是没有解决方案。
使用 C 扩展模块的 Python 的各种第三方包,包括 scipy、numpy 和 Beautifulsoup,只能在 Python 主解释器中工作并且不能在子解释器中使用,因为默认使用 mod_wsgi。您可以在下面找到 link.
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API
您可以通过在您的 conf 文件中写入以下行来解决这个问题。
WSGIApplicationGroup %{GLOBAL}
如果运行在同一台服务器上运行多个 WSGI 应用程序,您将要开始研究使用守护程序模式,因为某些框架不允许多个实例在同一解释器中 运行。 Django 就是这种情况。因此使用守护进程模式,因此每个进程都在自己的进程中,并强制每个进程在各自的守护进程模式进程组的主解释器中 运行。