TclError:EC2上没有显示名称和$ DISPLAY环境变量

时间:2015-03-06 18:55:37

标签: python amazon-ec2 ipython anaconda

我想在Amazon EC2(Linux AMI)上使用iPython。我已经安装了Anaconda并启动了iPython以测试我已经创建的一些脚本。现在我只对在终端中运行它感兴趣(作为Notebook)。

在我的代码开头我总是这样做:

import json
import numpy as np
import pandas as pd
from pandas import Series, DataFrame

但是,我在文本编辑器中尝试了CTRL + C,然后在终端中使用%paste我得到错误:

TclError: no display name and no $DISPLAY environment variable

如果按照此建议No display name and no $DISPLAY environment variable using tkinter through ssh尝试ssh -X name @ host,我会得到:

/opt/X11/bin/xauth:  file /Users/adrianp/.Xauthority does not exist
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
X11 forwarding request failed on channel 0

为了解决这个问题,我尝试了https://superuser.com/questions/249045/x11-forwarding-from-amazon-ec2-ami,但仍然收到了警告:

 Warning: untrusted X11 forwarding setup failed: xauth key data not generated

同样的错误:

TclError: no display name and no $DISPLAY environment variable

根据这个建议Generating a PNG with matplotlib when DISPLAY is undefined(这似乎无关紧要,但我已尝试过一切)我做了:

import matplotlib
matplotlib.use('Agg')

在导入任何其他内容之前仍然会收到相同的错误。

有关如何解决此问题的任何想法?我真的很想使用粘贴魔术功能输入函数/等。

1 个答案:

答案 0 :(得分:4)

这更像是一个linux / X11问题而不是python问题。此外,这个过程可能有点过分 - 你最好只在本地运行ipython或启动网络笔记本。

无论如何,你应该:

  • 安装tigervnc
  • 运行vncserver(因为这是面向互联网的服务器,使用安全密码短语或阻止防火墙中的端口)
  • 安装tk(我想你已经这样做了)
  • 编辑sshd_config(很可能是/ etc / ssh / sshd_config)并启用 X11Forwarding(X11Forwarding yes)。
  • 登录您的服务器,将-Y选项传递给ssh(ssh -Y user @ server)

然后你应该能够启动ipython并使用%paste。