我需要繪製在沒有顯示的系統上。 如果我天真地繪製使用matplotlib.pyplot.plt我得到繪製不顯示:正確使用matplotlib.use()
raise RuntimeError('Invalid DISPLAY variable')
我已經發現,matplotlib.use()
在這方面可以使用。 現在我有一個主文件:
**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
刷新控制檯後問題仍然存在。現在第一個導入matplotlib在main.py導入的第一個模塊中完成,應該沒問題吧? – ErroriSalvo