相关疑难解决方法(0)

当DISPLAY未定义时,使用matplotlib生成PNG

我正在尝试将networkx与Python一起使用.当我运行此程序时,它会收到此错误.有什么遗漏?

#!/usr/bin/env python

import networkx as nx
import matplotlib
import matplotlib.pyplot
import matplotlib.pyplot as plt

G=nx.Graph()
G.add_node(1)
G.add_nodes_from([2,3,4,5,6,7,8,9,10])
#nx.draw_graphviz(G)
#nx_write_dot(G, 'node.png')
nx.draw(G)
plt.savefig("/var/www/node.png")


Traceback (most recent call last):
  File "graph.py", line 13, in <module>
    nx.draw(G)
  File "/usr/lib/pymodules/python2.5/networkx/drawing/nx_pylab.py", line 124, in draw
    cf=pylab.gcf()
  File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 276, in gcf
    return figure()
  File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 254, in figure
    **kwargs)
  File "/usr/lib/pymodules/python2.5/matplotlib/backends/backend_tkagg.py", line 90, in new_figure_manager
    window = Tk.Tk()
  File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1650, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, …
Run Code Online (Sandbox Code Playgroud)

python graph matplotlib

309
推荐指数
9
解决办法
17万
查看次数

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

我想在Amazon EC2(Linux AMI)上使用iPython.我已经安装了Anaconda并启动了iPython来测试我已经创建的一些脚本.现在我只对在终端(不是笔记本电脑)中运行它感兴趣.

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

import json
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
Run Code Online (Sandbox Code Playgroud)

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

TclError: no display name and no $DISPLAY environment variable
Run Code Online (Sandbox Code Playgroud)

如果我按照这个建议尝试ssh -X name @ host 没有显示名称和使用tkinter通过ssh的$ DISPLAY环境变量,我得到:

/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
Run Code Online (Sandbox Code Playgroud)

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

 Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Run Code Online (Sandbox Code Playgroud)

同样的错误: …

python amazon-ec2 ipython anaconda

12
推荐指数
1
解决办法
7801
查看次数

为什么这会解决matplotlib的'no $ DISPLAY环境'问题?

运行matplotlib在我的台式PC 中使用该库的代码时,使用该行没有问题:

import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

远在代码中,这是我实际使用绘图功能的地方.

如果我在服务器中运行代码,虽然它只在我matplotlib 之前导入时才有效,并强制它使用Agg后端.即,我必须在代码的开头添加以下行:

import matplotlib
# Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')
Run Code Online (Sandbox Code Playgroud)

(参见这个解释的答案).否则代码将崩溃TclError: no display name and no $DISPLAY environment variable(例如,请参阅此问题).

问题是:为什么我需要这样做?该解决方案运行良好,但我不知道为什么我不必在我的台式机上执行此操作,但我绝对必须在服务器中运行代码.

python x11 matplotlib

9
推荐指数
1
解决办法
2万
查看次数

Windows 10中的Ubuntu中,在tkinter中出现错误:“无显示名称,无$ DISPLAY环境变量”

我最近安装了适用于Windows 10的Ubuntu应用程序,以便可以在课堂上使用它。

我正在遵循一些神秘的分配指导来“尝试tkinter”。

我按照以下说明在Ubuntu终端窗口中安装了python3-tk软件包:如何在ubuntu / Debian / Linux mint中安装和使用Tkinter

所以我执行

~$ python3
Run Code Online (Sandbox Code Playgroud)

结果

Python 3.5.2 (default, Aug 18 2017, 17:48:00)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
Run Code Online (Sandbox Code Playgroud)

然后执行以下命令:

>>> import tkinter
>>> tkinter.Tk()
Run Code Online (Sandbox Code Playgroud)

结果错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/tkinter/__init__.py", line 1871, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, 
wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
Run Code Online (Sandbox Code Playgroud)

ubuntu xming tkinter xserver windows-10

8
推荐指数
2
解决办法
8028
查看次数