_tkinter.TclError:新 OS X Mavericks 没有显示名称,也没有 $DISPLAY 环境变量

2024-06-26

这是我的第一篇文章,所以请原谅。

我正在尝试使用 matplotlib 创建动画,直到几天前我都可以完美地做到这一点,直到我升级到 OS X Mavericks,从此一切都崩溃了。请注意,以下代码适用于 OS X Lion。

突然,我在 Mavericks 中尝试运行此代码时收到一条错误消息:

import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import pandas as pd
import mpl_toolkits.mplot3d.axes3d as p3

#----->READ AND FORMAT DATA-----------------------------------------------#
.
.
.
.

#-------------------------------------------------------------------------#

# Set up figure & 3D axis for animation
fig = plt.figure(figsize=(10,10))
ax = fig.add_axes([0, 0, 1, 1], projection='3d') # Correct way to make 3D plots

# set up lines and points
lines = sum([ax.plot([], [], [], '-')], [])
pts = sum([ax.plot([], [], [], 'o')], [])

# Setting the axes properties
ax.set_xlim3d([-2000, 2000])
ax.set_xlabel('X')
ax.set_ylim3d([1350, 1400])
ax.set_ylabel('Y')
ax.set_zlim3d([-340, 600])
ax.set_zlabel('Z')

# set point-of-view: specified by (altitude degrees, azimuth degrees)
ax.view_init(40, 0)
ax.set_title('animation')
ax.grid() # add grid

# Initialisation function: plot the background of each frame
def init():
    for line, pt in zip(lines, pts):
        # Lines
        line.set_data([], [])
        line.set_3d_properties([])
        # Points
        pt.set_data([], [])
        pt.set_3d_properties([])
    return lines + pts

# Animation function.  This will be called sequentially with the frame number
def animate(i):
    # we'll step two time-steps per frame.  This leads to nice results.
    i = (2.5 * i)

    for line, pt, dat in zip(lines, pts, data):
        x, y, z = dat[:i].T
        # Lines
        line.set_data(x, y)
        line.set_3d_properties(z)
        # Points
        pt.set_data(x[-1:], y[-1:])
        pt.set_3d_properties(z[-1:])

    ax.view_init(45, i)
    fig.canvas.draw()
    return lines + pts

#----->ANIMATION-----------------------------------------------------------#

# Creating the Animation object
anim = animation.FuncAnimation(fig, animate, init_func=init,
                               frames=120, interval=30, blit=True)
# Save as mp4. This requires mplayer or ffmpeg to be installed
# anim.save('one_marker_3D.mp4', fps=15, extra_args=['-vcodec', 'libx264'])

plt.show()

这会产生以下错误消息:

Traceback (most recent call last):
  File "shoulder_animation_walking_straight_3D.py", line 26, in <module>
    fig = plt.figure(figsize=(10,10))
  File "/Users/me/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 423, in figure
    **kwargs)
  File "/Users/me/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 79, in new_figure_manager
    return new_figure_manager_given_figure(num, figure)
  File "/Users/me/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager_given_figure
    window = Tk.Tk()
  File "/Users/me/anaconda/lib/python2.7/lib-tk/Tkinter.py", line 1745, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

现在,正如您希望看到的那样,我尝试使用 TkAgg 后端而不是“Agg”后端,正如文档所建议的那样(https://wiki.python.org/moin/TkInter https://wiki.python.org/moin/TkInter)。这似乎会导致新版本的 OS X 出现问题,因为不再支持 X11,而必须安装 XQuartz。这一点我也做过。但它仍然给我同样的错误。

我还尝试使用 macports 安装 py33-tkinter,但这也不起作用,但也许我没有正确安装。我只是做了

sudo port py33-tkinter

总的来说,我对 python 和 unix 还很陌生。

更新(2013 年 12 月 22 日):

我做了以下事情

Python 2.7.5 |Anaconda 1.8.0 (x86_64)| (default, Oct 24 2013, 07:02:20) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import Tkinter

然后运行Tkinter测试

>>> Tkinter._test()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/me/anaconda/lib/python2.7/lib-tk/Tkinter.py", line 3770, in _test
    root = Tk()
  File "/Users/me/anaconda/lib/python2.7/lib-tk/Tkinter.py", line 1745, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
>>>

可能对比我更了解这一点的人有帮助。


SOLUTION

通过执行以下操作解决了这个问题,这是由 XQuartz 的问题引起的;

launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist

我以为重新安装 XQuartz 会重新启用 launchd,但显然这没有发生。现在一切正常了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

_tkinter.TclError:新 OS X Mavericks 没有显示名称,也没有 $DISPLAY 环境变量 的相关文章

随机推荐

  • 背景上可见的片段

    我正在开发一个应用程序 该应用程序具有在 XML 文件中定义的三个片段 HeaderFragment MainFragment FooterFragment 第一个屏幕启动三个片段 Header 和 FooterFragment 是静态的
  • foreach 与 LINQ .ForEach() [重复]

    这个问题在这里已经有答案了 为什么LINQ ForEach需要一个List对象 而foreach声明只需要IEnumerable 我更喜欢使用foreach当有多行和单行语句的 LINQ 时 只是为了可读性 但什么是首选 为什么 为什么会有
  • 使用 Bearer Token 在 C# 中构建 post HttpClient 请求

    我并不是真正的 C 专家 我有一个 C 中的 post httpRequest 需要开发 为此我创建了这个方法 它接受一个 Uri 一个对象和一个不记名令牌 该方法旨在构建调用请求 private HttpClient client new
  • 在 SelectList 集合中设置所选项目

    我有一堂具有以下属性的课程 它构建了一个SelectList现有列表中的对象 然后设置所选项目 public SelectList ProviderTypeList get SelectList list new SelectList my
  • 卡桑德拉吃掉内存

    I have 卡桑德拉2 1并设置以下属性 MAX HEAP SIZE 5G HEAP NEWSIZE 800M memtable allocation type heap buffers top 实用程序显示 cassandra 占用了
  • 如何在 Tomcat7 中部署 Grails 3.0.1 war 文件?

    我怎样才能部署一个Grails 3 0 1Tomcat7 的非嵌入式版本中的 war 文件 我收到的只是一个空白页或 404 错误 我可以成功部署其他 war 文件 所以我知道这不是 Tomcat 的问题 我的版本以及我采取的步骤如下 Se
  • 如何使用 pandoc 将目录中的所有 .md 文件编译为单个 .pdf,同时保留 YAML 标头数据?

    我有一个 md 文档目录 每个文档都包含一个指定文档的 YAML 标头title author date categories tags等 该目录包含日记条目 文件名只是条目的日期 我使用 pandoc 为每个 md 文件生成 PDF 没有
  • 如何使用 pollingThrottle 和 pollingInterval?

    所以我的应用程序中有一些东西我不需要立即反应并找到有关属性的信息轮询节流阀 and 轮询间隔在文档中 所以这里基本上是我设法找到的有关这些属性的所有信息 pollingIntervalMs 数 仅限服务器 在服务器上观察时轮询此查询的频率
  • SSRS报告不显示数据

    我刚刚创建了 SQL Server 2005 SSRS 报告 数据未显示在预览窗格中 数据集是根据字符串参数从存储过程正确填充的 我可以在数据窗格中执行它 在预览窗格中运行报表时 会显示正确的行数 但单元格的内容不包含任何数据 源数据集基于
  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • 使用 SignalR 检测“服务器离线”

    我们尝试在低带宽环境中使用 SignalR 在该环境中 与后端服务器的连接可以随机出现和消失 并且我们希望我们的 Web 应用程序能够做出适当的响应 看起来这个连接 API 在过去的一年里一直在变化 但根据最新的文档 我尝试连接 conne
  • ngTemplateOutlet - Angular 5 嵌套模板驱动表单

    我有一个从我的组件之一传递的 ng template 并且我有一个占位符来接受传递的 ng template 到我的组件上 如下 ngTemplateOutlet 中所示 div div
  • 如何构建可嵌入的 Python

    我想知道如何为 Windows 构建可嵌入的 Python 找不到该特定包的任何信息或构建配置 我问的原因是我可以在 Mac 和 Linux 上使用相同的变体 最近 我必须为 64 位 Python 3 5 6 构建一个可嵌入的 zip 因
  • 使用新内容刷新 ViewPager 时出现奇怪的问题:

    我从 Web 服务接收数据 该数据被解析为Application类 这个对象在我的例子中是一个Report类包含一个列表Tabs应该填充ViewPager 所以这个报告存储在currentReport应用程序类中的参数 每个选项卡应该是Vi
  • 退出无法在 Heroku 上工作 - 使用 Devise gem 和 Rails 4

    我刚刚对使用 Devise 进行身份验证的 Rails 4 应用程序进行了初始部署到 Heroku 注销可以在本地进行 但 Heroku 返回错误 您正在查找的页面不存在 并且不会注销用户 根据 Heroku 日志和 Google SO 搜
  • Mongoose 中的分组(依据)?

    我已经在 shell 中构建了我想要的查询 但在 Mongoose 中编写它时遇到了问题 db commentstreams group key page id true reduce function obj prev prev num
  • MVC 6 安装为 Windows 服务 (ASP.NET Core 1.0.0)

    更新 2016 年 7 月 26 日 我已将解决方案添加到ASP NET Core 1 0 0在下面的答案中 我创建了一个简单的 MVC 6 应用程序 并包含了 Microsoft AspNet WebListener 库 以便我可以在 I
  • 如何为我的 Android 应用程序创建页眉或页脚按钮栏

    许多流行的应用程序 如 Google 地图 Facebook Foursquare 等 其大部分活动都有页眉和 或页脚栏 这些标题通常包含非常有用的按钮 并且 我想为我的应用程序创建一个 有谁知道它们是如何完成的 到目前为止我还没有找到任何
  • 使用 c++ 类,以便在实例化时产生编译错误

    正如我在上一个问题中询问并回答的那样 是否可以有条件地创建一个类 下面的代码如下 当条件不再可接受时 应该可以实例化一个生成编译错误的类 Example include
  • _tkinter.TclError:新 OS X Mavericks 没有显示名称,也没有 $DISPLAY 环境变量

    这是我的第一篇文章 所以请原谅 我正在尝试使用 matplotlib 创建动画 直到几天前我都可以完美地做到这一点 直到我升级到 OS X Mavericks 从此一切都崩溃了 请注意 以下代码适用于 OS X Lion 突然 我在 Mav