2

非常卡在这里,我没有很多事情要做。我启动并运行了一个 django 应用程序,我开始使用 NetworkX 和 Matplotlib 进行绘图,以可视化海报的一些数据。然后我尝试再次使用该站点并收到错误:

'/var/www' 不是可写目录;您必须将 /var/www/.matplotlib 设置为可写目录。您还可以将环境变量 MPLCONFIGDIR 设置为您希望存储 matplotlib 数据的任何可写目录

我通过 chmod'ding 目录解决了这个问题。该站点的主页然后加载正常,但是当我尝试加载 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>

如果您有任何想法或需要更多信息,请告诉我。

谢谢!

4

1 回答 1

0

我有同样的问题; Apache/Django 不起作用,但manage.py runserver可以正常工作。我尝试使默认目录可读,并尝试使用 更改MPLCONFIGDIRexport MPLCONFIGDIR=/stuff/但唯一有效的是放置

import os
os.environ[ 'MPLCONFIGDIR' ] = '/tmp/'

在导入 matplotlib 之前。在我的例子中,只有一页使用 MPL,所以我可以接受这个“无处不在”。

取自steko的原始解决方案。

于 2014-01-02T10:16:31.310 回答