非常困在这里,我没有太多事情要做。我启动并运行了一个 Django 应用程序,然后我开始使用 NetworkX 和 Matplotlib 进行绘图,以可视化海报的一些数据。然后我尝试再次使用该网站并收到错误:
'/var/www' 不是可写目录;您必须将/var/www/.matplotlib 设置为可写目录。您还可以将环境变量 MPLCONFIGDIR 设置为您希望存储 matplotlib 数据的任何可写目录
我通过修改目录解决了这个问题。该网站的主页然后加载正常但是当我尝试加载任何其他页面时 django 呈现 apache 只是挂起。我将日志级别设置为调试并跟踪它,但它没有显示任何新请求或错误或任何东西,它只是挂起直到浏览器放弃。然后我认为这一定是我刚刚做的事情的错误,所以我在我的 repo 协议(protocol)中恢复到一个工作版本并且遇到了同样的问题。 Django 的测试服务器仍在正常运行站点,这让我相信这是 apache 的问题(在整个问题中,apache 是我经验最少的部分)。
我的 httpd.conf 看起来像:
ServerName >> my server <<
TraceEnable off
AcceptFilter http none
AcceptFilter https none
EnableMMAP off
EnableSendfile off
<VirtualHost *:80>
ServerAdmin >> my email <<
ServerName >> my server <<
DocumentRoot /Web/public/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
WSGIScriptAlias / /home/$USER/$APP/$APP/wsgi.py
<Directory /Web/public/static>
Options -Indexes
</Directory>
Alias /static /Web/public/static
Alias /media /Web/public/media
ErrorLog /var/log/apache2/error.log
LogLevel debug
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
如果您有任何想法或需要更多信息,请告诉我。
谢谢!
最佳答案
我遇到了同样的问题; Apache/Django 无法运行,但 manage.py runserver
可以正常运行。我尝试使默认目录可读,并尝试将 MPLCONFIGDIR
更改为 export MPLCONFIGDIR=/stuff/
,但唯一起作用的是放置
import os
os.environ[ 'MPLCONFIGDIR' ] = '/tmp/'
在导入 matplotlib 之前。在我的例子中只有一个页面使用 MPL,所以我可以接受将这个“无处不在”。
取自original solution通过 steko .
关于mysql - Apache 与 Django 应用程序和 Matplotlib 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084342/