2

リンクされた質問: Mac OS X: _tkinter.TclError: no display name and no $DISPLAY 環境変数

上記には同じ問題がありますが、それに対する答えは私には当てはまりません。

a.py

from Tkinter import * 

root = Tk() 
canvas = Canvas(bg='white', width = 200, height = 200) 
canvas.pack() 

canvas.create_line(0, 0, 199, 199, fill="blue", width = 5) 
canvas.create_line(0, 199, 199, 0, fill="blue", width = 5) 

canvas.update() 
canvas.postscript(file = "x.ps") 

root.mainloop() 

a.py はリモートサーバー上にあります

VNC経由でサーバーに接続して実行すると、これは正常に機能します。

しかし、WindowsでPuttyを介してサーバーに接続して実行すると、「表示名も表示環境変数もありません」と表示されます

1) これを Putty で実行できますか?

2) Python は接続がパテを介して行われたかどうかを認識でき、TclError の代わりに独自のエラーを発生させることができますか?

4

1 に答える 1

3

ログインする前に、Windows マシンで X サーバーを実行し、パテ セッションで X11 転送を有効にする必要があります (PuTTY の接続/SSH/X11 プロパティ ページを参照してください)。過去に、無料のXmingとそうでない eXceed を使用しました。実際に見ているマシンにXサーバーがあり、sshリンクを介してX接続を転送すると、リモートマシンでDISPLAY環境変数がセットアップされ、Xクライアントがディスプレイサーバーと通信できるようになります。それ以外の場合、DISPLAY セットアップがないと、Tk はエラーを発生させます - あなたが見ているように。

于 2013-10-16T19:06:41.657 に答える