」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何解決在伺服器上使用 Matplotlib 的 Python 腳本的「_tkinter.TclError:無顯示名稱且無 $DISPLAY 環境變數」問題?

如何解決在伺服器上使用 Matplotlib 的 Python 腳本的「_tkinter.TclError:無顯示名稱且無 $DISPLAY 環境變數」問題?

發佈於2024-11-12
瀏覽:654

How to Solve the \

_tkinter.TclError:沒有顯示名稱,也沒有$DISPLAY 環境變數

_tkinter.TclError:沒有顯示名稱,也沒有$DISPLAY 環境變數

問題

使用Matplotlib 的Python 腳本在伺服器上失敗,並出現錯誤「產生繪圖時沒有顯示名稱和$DISPLAY 環境變數」。出現此問題的原因是 Matplotlib 預設使用 Xwindows 後端,並且與缺少圖形使用者介面 (GUI) 的伺服器環境不相容。

解決方案

    要解決此問題,請將 Matplotlib 設定為使用非互動式後端。有多種方法可以實現此目的:
  1. 將程式碼新增至腳本:
在腳本開頭,導入matplotlib.pyplot 之前,包含以下程式碼:
import matplotlib
matplotlib.use('Agg')
    導入matplotlib matplotlib.use('Agg')
  1. 修改Matplotlib 設定檔:
在檔案.config/matplotlib/matplotlibrc 中,新增行backend: Agg.這將指示Matplotlib 使用非互動式Agg 後端。
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
    echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
  1. 使用X 轉送的SSH:
透過SSH 連線到伺服器時,使用-X 選項啟用Xwindows 轉送。這將允許伺服器上執行的 GUI 應用程式與客戶端的 GUI 環境進行互動。
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
    ssh -X remoteMachine.com
  1. Export $DISPLAY Variable:
將$DISPLAY環境變數設定為適當的值,例如客戶端的IP地址和顯示號碼machine.
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc

export DISPLAY=mymachine.com:0.0

透過實施這些解決方案之一,您可以將Matplotlib 配置為在伺服器環境中運行,而無需依賴GUI。 How to Solve the \

版本聲明 本文轉載於:1729601178如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3