Apache使用Django/Matplotlib应用程序挂起

2024-06-17 09:40:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是新的StackOverflow用户。我需要帮助解决Apache的冻结问题。我在win764位上有一个WAMPServer设置,正在使用python/django/mysql/mod wsgi/matplotlib,尝试动态渲染的图像。我使用Apache来提供静态文件。在

我试图从MySQL数据库中绘制数据。我的视图.py文件在下面。当我通过访问相应的网页调用函数“view_Stats”时,它调用“CreateFig”函数来创建.png文件并将其保存到随后由Apache提供服务的目录中。它最初运行良好,但在Apache挂起之前,似乎最多可以对“CreateFig”函数进行8次调用。我必须重新启动Apache,但是它需要一段时间(几分钟)才能重新启动。在

查看Apache错误日志(见下文)显示了一个与Apache子进程相关的错误,它要求Apache强制终止它。我怀疑是某种内存泄漏/错误,但我对这一点很陌生,不能很好地进行故障排除;我在google上搜索了这个,并查看了StackOverflow,no joy。在

任何帮助都将不胜感激!在

[Tue Mar 11 17:01:07.550093 2014] [core:notice] [pid 2820:tid 404] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.4\\bin\\httpd.exe -d C:/wamp/bin/apache/Apache2.4.4'
[Tue Mar 11 17:01:07.551093 2014] [mpm_winnt:notice] [pid 2820:tid 404] AH00418: Parent: Created child process 3528
[Tue Mar 11 17:01:07.856093 2014] [mpm_winnt:notice] [pid 3528:tid 324] AH00354: Child: Starting 150 worker threads.
[Tue Mar 11 17:04:53.233893 2014] [mpm_winnt:notice] [pid 2820:tid 404] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[Tue Mar 11 17:05:23.248293 2014] [mpm_winnt:notice] [pid 2820:tid 404] AH00431: Parent: Forcing termination of child process 3528

代码来自视图.py如下所示:

^{pr2}$

Tags: 文件py视图binapache错误stackoverflowpid
1条回答
网友
1楼 · 发布于 2024-06-17 09:40:36

这很可能是因为您在使用matplotlib时试图连接到(可能不存在)X服务器。如果您的web服务器上运行了X,您可能仍然希望避免使用matplotlib的交互式后端

编辑:刚刚看到您在windows上。显然,在Windows上运行时,matplotlib并没有试图连接到X服务器,但我敢打赌,您的问题仍然与使用交互式后端和matplotlib试图连接到图形显示有关。)

如果要使用不带交互式绘图的matplotlib(即不需要X-server),则需要显式地使用非交互式后端。(例如Aggpdf等)

首先,删除from pylab import *。这是一个非常糟糕的主意,有很多原因(提示,min和{}不是你认为的那样,等等)。而且,你好像没有用它。您已经通过pyplot接口和numpy通过numpy命名空间访问matplotlib功能。在

接下来,之前import matplotlib.pyplot as plt(如果决定不删除,则在{}之前执行:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot # etc...

现在,matplotlib不会在每次创建新图形时尝试连接到X显示。在

相关问题 更多 >