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

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

Susan Sarandon
Susan Sarandon原創
2024-10-23 00:14:03542瀏覽

How to Solve the

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

問題

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

解決方案

要解決此問題,請將 Matplotlib 設定為使用非互動式後端。有多種方法可以實現此目的:

  1. 將程式碼新增至腳本: 在腳本開頭,導入matplotlib.pyplot 之前,包含以下程式碼:
<code class="python">import matplotlib
matplotlib.use('Agg')</code>
  1. 修改Matplotlib 設定檔: 在檔案.config/matplotlib/matplotlibrc 中,新增行backend: Agg.這將指示Matplotlib 使用非互動式Agg 後端。
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
  1. 使用 SSH 和 X 轉送: 透過 SSH 連線到伺服器時,使用-X 選項啟用 Xwindows 轉送。這將允許伺服器上執行的 GUI 應用程式與客戶端的 GUI 環境進行互動。
ssh -X remoteMachine.com
  1. 匯出 $DISPLAY 變數: 將 $DISPLAY 環境變數設為適當的值,例如用戶端電腦的 IP 位址和顯示編號。
export DISPLAY=mymachine.com:0.0

透過實作這些解決方案之一,您可以將 Matplotlib 配置為在伺服器環境中運行,而無需依賴圖形使用者介面。

以上是如何解決在伺服器上使用 Matplotlib 的 Python 腳本的「_tkinter.TclError:無顯示名稱且無 $DISPLAY 環境變數」問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn