非常困在这里,我没有太多的事情要做。我已经启动并运行了一个django应用程序,我开始使用NetworkX和Matplotlib进行绘图,以可视化海报的一些数据。然后我再次尝试使用该网站,并得到错误:
"/var/www"不是可写的目录;您必须将/var/www/.matplotlib设置为可写目录。您还可以将环境变量MPLCONFIGDIR设置为任何要存储matplotlib数据的的可写目录
我通过修改目录来解决这个问题。该网站的主页加载良好,但当我试图加载django渲染的任何其他页面时,apache就会挂起。我将日志级别设置为调试并跟踪它,但它没有显示任何新的请求或错误或任何东西,它只是挂起,直到浏览器放弃。然后我想这一定是我刚刚做的某个错误,所以我在回购中恢复到了工作版本,并遇到了同样的问题。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
可以正常工作。我尝试使默认目录可读,并尝试用export MPLCONFIGDIR=/stuff/
更改MPLCONFIGDIR
,但唯一有效的方法是放置
import os
os.environ[ 'MPLCONFIGDIR' ] = '/tmp/'
导入matplotlib之前。在我的情况下,只有一个页面使用MPL,所以把它放在"各处"对我来说是可以接受的
取自steko的原始溶液。