ディスプレイを持たないシステムでプロットする必要があります。 Iプロットは単純に私はmatplotlib.use()
は、この文脈で使用することができることを見出したプロット表示なし:matplotlib.use()の正しい使用
raise RuntimeError('Invalid DISPLAY variable')
を取得matplotlib.pyplot.pltを使用している場合。
**main.py:**
import my_module
....
# do stuff
**my_module.py:**
import matplotlib
matplotlib.use('Agg') # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt
# do stuff
plt.plot(data)
main.pyを実行している私が手:: は、今私はメインのファイル持って
UserWarning:
This call to matplotlib.use() has no effect because the backend has already
been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
をしかし、私には、私がpyplot
をインポートする前に、それを呼び出していそうです。その後、私は、このランタイムエラー
File "[OMIT]/python2.7/site-packages/matplotlib /backends/backend_qt5.py", line 144, in _create_qApp
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
だからmatplotlib
バックエンドを変更する正しい方法は何であるか?私はディスプレイを必要としませんが、私はplt.savefig
'main.py'に' matplotlib'をインポートできるものはありますか? 'my_module'以外のモジュールをインポートしますか? – tom
my_moduleを最初にインポートするようにコードを変更しました。提案に感謝します。カーネルをリフレッシュせずにそこに問題がある – ErroriSalvo
コンソールをリフレッシュしても問題は残ります。今、最初のimport matplotlibは、main.pyによってインポートされた最初のモジュールで実行されます。 – ErroriSalvo