Labellioで作った分類器を自前のubuntuで動かそうとした時に出たエラーと解決策

#背景
aplacaさんの[Labellio](https://www.labell.io/)という便利なサービスを使って作ったモデルを自分のサーバーに載せたいと思いましたが、Caffeのインストール時(？）にハマったので、解決策をメモしておきます。

#注意
原因の究明まで出来ていません。
こんな状態で曖昧な情報を公開するのは良くないと思いますが、同じ状態で困っている人が居るかもしれませんので、対処法として公開しておきます。

#環境構築＆問題にぶつかるまでの流れ
1. labbelioで分類器作ってみた
2. 作ったモデルをWebで公開したい（公開の方法は[こちら](http://blog-jp.alpaca.ai/entry/2015/06/30/135214)）
3. ubuntuサーバー持ってない
- CentOS6で頑張ろうとしたが挫折した
- konohaでubuntu14.04を借りた
- [こちらの記事](http://qiita.com/TD72/items/1bab76e395243defcc06)を参考にインストールしていった
- caffeのインストールは出来た（「make runtest」は通った）
- app.pyを実行すると、こんなエラー出た

```
Gdk-CRITICAL **: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
Traceback (most recent call last):
  File "app.py", line 8, in <module>
    from labellio import Classifier, Config, ImageLoader, Label
  File "/usr/local/lib/python2.7/dist-packages/labellio/__init__.py", line 2, in <module>
    from labellio.classifier import Classifier
  File "/usr/local/lib/python2.7/dist-packages/labellio/classifier.py", line 6, in <module>
    from labellio.net import Net
  File "/usr/local/lib/python2.7/dist-packages/labellio/net.py", line 4, in <module>
    import caffe
  File "/root/caffe/python/caffe/__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "/root/caffe/python/caffe/pycaffe.py", line 15, in <module>
    import caffe.io
  File "/root/caffe/python/caffe/io.py", line 2, in <module>
    import skimage.io
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/__init__.py", line 15, in <module>
    reset_plugins()
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 93, in reset_plugins
    _load_preferred_plugins()
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 73, in _load_preferred_plugins
    _set_plugin(p_type, preferred_plugins['all'])
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 85, in _set_plugin
    use_plugin(plugin, kind=plugin_type)
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 255, in use_plugin
    _load(name)
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 299, in _load
    fromlist=[modname])
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/_plugins/matplotlib_plugin.py", line 3, in <module>
    import matplotlib.pyplot as plt
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 114, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_gtk3agg.py", line 11, in <module>
    from . import backend_gtk3
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_gtk3.py", line 58, in <module>
    cursors.MOVE          : Gdk.Cursor.new(Gdk.CursorType.FLEUR),
TypeError: constructor returned NULL
```

#解決策
https://github.com/BVLC/caffe/issues/861
ここを参考にして、実行時に**MPLBACKEND=Aggを付ける**と動きました。

こんな感じ→「**MPLBACKEND=Agg python app.py**」