[PYTHON] ssh를 통해 tkinter를 사용하는 표시 이름 및 $ DISPLAY 환경 변수 없음 [duplicate]
PYTHONssh를 통해 tkinter를 사용하는 표시 이름 및 $ DISPLAY 환경 변수 없음 [duplicate]
클러스터에서 .png 파일을 출력하는 아주 간단한 코드를 실행하려고합니다. 코드는 다음과 같습니다.
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)
out_png = 'path/to/store/out_file.png'
plt.savefig(out_png, dpi=150)
matplotlib 1.2.1이 설치된 시스템에서 python simple_code.py 명령으로이 코드를 실행하면 경고 메시지가 나타납니다.
Unable to load library icui18n "Cannot load library icui18n:
.png 이미지가 여전히 생성되므로 여기에 문제가 없습니다. 그러나 동일한 명령과 코드를 matplotlib 1.3.0이 설치된 클러스터에서 사용하면 오류가 발생하여 실패합니다.
Traceback (most recent call last):
File "simple_code.py", line 33, in <module>
plt.scatter(x, y, s=20)
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 3078, in scatter
ax = gca()
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 803, in gca
ax = gcf().gca(**kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 450, in gcf
return figure()
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 423, in figure
**kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 79, in new_figure_manager
return new_figure_manager_given_figure(num, figure)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager_given_figure
window = Tk.Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
여기서 무슨 일이 일어나고있는거야?
추가, 이것은 클러스터에 로그인 할 때 사용하는 스크립트입니다.
#!/usr/bin/expect
set login "user"
set addr "address1"
set addr2 "address2"
set pw "password"
spawn ssh -X $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "$login@host:"
send "ssh -X $addr2\r"
expect "$login@$addr\'s password:"
send "$pw\r"
interact
해결법
-
==============================
1.문제는 ssh 명령에 있습니다. 당신이해야 할 일은 다음과 같이 작성하는 것입니다.
문제는 ssh 명령에 있습니다. 당신이해야 할 일은 다음과 같이 작성하는 것입니다.
ssh -X "your_login"
from https://stackoverflow.com/questions/19309085/no-display-name-and-no-display-environment-variable-using-tkinter-through-ssh by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서리스트 객체를 상속하고 확장하는 방법은? (0) | 2018.10.30 |
---|---|
[PYTHON] 파이썬 플롯에서 그리스 문자 등 입력 (0) | 2018.10.30 |
[PYTHON] python 직접 tarfile에 문자열 쓰기 (0) | 2018.10.30 |
[PYTHON] random.random ()이 사용하는 시드를 쿼리하는 방법? (0) | 2018.10.30 |
[PYTHON] Python 3.6에 PIP를 설치하는 방법은 무엇입니까? (0) | 2018.10.30 |