2012-03-22 11 views
8

Linuxサーバーを使用してdjangoプロジェクトを設定しています。 "/var/www/.matplotlibを作成できませんでした.MPLCONFIGDIRをmatplotlib構成データ用の書き込み可能ディレクトリに設定することを検討してください"Matplotlibの設定MPLCONFIGDIR:MPLCONFIGDIRをmatplotlib設定データの書き込み可能なディレクトリに設定することを検討してください。

次に、$ MPLCONFIGDIRが空であることがわかりました。ですから、私は次のように設定します:

[email protected]:~$ export MPLCONFIGDIR=~/website/graph 
[email protected]:~$ echo $MPLCONFIGDIR 
/home/lab/website/graph 

このパスは、Matplotlibで作成した画像を保存するディレクトリです。 mod_wsgiのApacheとに展開されているDjangoプロジェクトでは、上記のエラーがまだ出て、

>>> import matplotlib 
>>> import os 
>>> os.environ.get('MPLCONFIGDIR') 
'/home/lab/website/graph' 

しかし: は、それから私は、Pythonのコマンドラインで、この設定を確認しました。私は以下の行を追加しました:

import os 
os.environ['MPLCONFIGDIR'] = "/home/lab/website/graph" 
print(os.environ.get('MPLCONFIGDIR')) 

"なし"と表示されます。

誰でも手伝ってもらえますか?

ありがとうございました。

+0

「mapplotlib」で同じ問題が発生したときに、何を検索するのか分かっていれば、Aha。私は 'configdir = os.environ.get( 'MPLCONFIGDIR')'を見つけたところにコードを戻しました。私は例外スタックトレースはそれについて私に言ったことはないと思う。 –

答えて

18

matplotlibをインポートする前に、MPLCONFIGDIRをコードで設定してください。ディレクトリには、アプリケーションが書き込むことができるような権限があることを確認してください。

import os 
os.environ['MPLCONFIGDIR'] = "/home/lab/website/graph" 
import matplotlib 

また、一時ファイルに設定することもできます。一時ディレクトリは、終了時に削除され

import os 

try: 
    import matplotlib 
except: 
    import tempfile 
    import atexit 
    import shutil 

    mpldir = tempfile.mkdtemp() 
    atexit.register(shutil.rmtree, mpldir) # rm directory on succ exit 

    os.environ['MPLCONFIGDIR'] = mpldir 

    import matplotlib 

この方法:

import os  
import tempfile 
os.environ['MPLCONFIGDIR'] = tempfile.mkdtemp() 
import matplotlib 
+0

編集のための@miguel – Esteban

+0

ありがとうございました。これも私たちの場合でした。 – mirek

0

パー@Estebanは、私は、モジュールやスクリプトでこのような何かを行います。

関連する問題