Mặc định thư viện Matplotlib trong Python sử dụng GUI framework cho backend để hiển thị hình ảnh. Nếu Matplotlib không tìm được GUI framework cần thiết (máy không có GUI hoặc đăng nhập vào server thông qua SSH) thì sẽ bị lỗi như sau khi chạy script: ~~~ _tkinter.TclError: no display name and no $DISPLAY environment variable ~~~ Có thể khác phục lỗi này bằng cách thiết lập để Matplotlib xuất nội dung ra file ảnh thay cho GUI. Tuy nhiên ngay cả khi xuất nội dung ra file ảnh cũng cần phải thay đổi backend của Matplotlib để không bị lỗi trên. Có 2 cách chủ yếu để thay đổi backend của Matplotlib. ### Cách 1: Thay đổi trong mỗi file script Thêm nội dung sau ở trên cùng mỗi file python có sử dụng Matplotlib ~~~python import matplotlib matplotlib.use('Agg') ~~~ ### Cách 2: Thay đổi trong file config của Matplotlib Ở cách 1 có thể linh hoạt thay đổi chỉ khi nào cần thiết nhưng khá phiền phức nếu số lượng file nhiều. Nếu hệ thống không cần thiết phải xuất nội dung ra GUI mà luôn xuất ra file ảnh thì có thể thay đổi luôn nội dung file config của Matplotlib. Tìm đường dẫn file config của Matplotlib ~~~ >>> import matplotlib >>> matplotlib.matplotlib_fname() '/vagrant/pythonenv-learn-deeplearning/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc' ~~~ Đường dẫn của file config hiện tại là `/vagrant/pythonenv-learn-deeplearning/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc`. Mở file config và thay đổi option `backend` thành `backend Agg` là được.