

win10機からubuntu 18.04LTS機にvnc接続して実行したところ以下のエラーが表示されました。

[code]

    root@kawasakih2sx-desktop:/home/takumii/ss# python test2.py
    No protocol specified
    No protocol specified
    Traceback (most recent call last):
      File "test2.py", line 7, in <module>
        plt.scatter(x,y,s=20)
      File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2858, in scatter
        __ret = gca().scatter(
      File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/pyplot.py", line 935, in gca
        return gcf().gca(**kwargs)
      File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/pyplot.py", line 578, in gcf
        return figure()
      File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/pyplot.py", line 525, in figure
        **kwargs)
      File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/backend_bases.py", line 3218, in new_figure_manager
        return cls.new_figure_manager_given_figure(num, fig)
      File "/root/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 1008, in new_figure_manager_given_figure
        window = Tk.Tk(className="matplotlib")
      File "/root/.pyenv/versions/3.6.8/lib/python3.6/tkinter/__init__.py", line 2023, in __init__
        self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
    _tkinter.TclError: couldn't connect to display ":10.0"
    
[/code]

test2.pyの中身は以下の通りになります。

[code]

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.random.randn(60)
    y = np.random.randn(60)
    
    plt.scatter(x,y,s=20)
    
[/code]

解決方法をご存知の方はご教示いただけますと幸いです。  
よろしくお願いいたします。

※追記

win10からUbuntuへvnc接続と記載しましたが、正確にはvnc接続でリモートデスクトップを利用中、になります  
よろしくお願いいたします。


CC BY-SA 4.0
2019-05-15T05:15:58.337
54968
2022-04-14T01:09:00.867
2019-05-15T09:12:15.290
34052
34052
question
python tkinter
tkinterのcouldn't connect to display ":10.0"エラーについて


Ubuntu(=Linux)でのGUI表示には **Xサーバ** という仕組みを利用しているので、GUIを起動するには  
「どのディスプレイにウィンドウを表示するか」を環境変数`DISPLAY`に設定しておく必要があります。

VNCを使用しているので少しややこしいですが、プログラムをUbuntu上で実行してGUIもUbuntu上に表示するなら、環境変数DISPLAYを以下の通り設定してからPythonプログラムを実行してみてください。

[code]

    $ export DISPLAY=":0.0"
    
[/code]

参考：  
[環境変数:DISPLAY:
UNIX/Linuxの部屋](http://x68000.q-e-d.net/~68user/unix/pickup?DISPLAY)


CC BY-SA 4.0
2019-05-15T06:22:57.413
54972
2019-05-15T06:22:57.413
3060
54968
answer