【问题标题】:NSException on import of matplotlib, kivy in OSX在 OSX 中导入 matplotlib、kivy 时出现 NSException
【发布时间】:2017-03-08 12:38:13
【问题描述】:

我正在编写一些在 Windows 10 上运行良好的 kivy 代码,但在 osx sierra 上崩溃,我已经隔离了当我在 matplotlib 旁边导入 kivy.core.window 时发生崩溃:

import matplotlib
matplotlib.use("TkAgg")
from matplotlib import pyplot as plt
import kivy.core.window

如果没有matplotlib.use("TkAgg"),它也会崩溃。这只是为了表明问题没有像其他问题所暗示的那样被解决。

异常的输出是:

2017-03-08 13:33:32.461 Python[28614:209475] -[SDLApplication _setup:]: unrecognized selector sent to instance 0x1020ea6c0
2017-03-08 13:33:32.464 Python[28614:209475] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SDLApplication _setup:]: unrecognized selector sent to instance 0x1020ea6c0'
*** First throw call stack:
(
0   CoreFoundation  0x00007fffa8716e7b  __exceptionPreprocess + 171
1   libobjc.A.dylib                     0x00007fffbd300cad objc_exception_throw + 48
...
)
libc++abi.dylib: terminating with uncaught exception of type NSException

什么可能导致这种情况,我从哪里开始寻找调试这种类型的异常呢?

解决此问题后,我遇到了一个可能相关的问题,在 this question 中注明。

【问题讨论】:

  • 这看起来可能是 kivy 和 SDL 对彼此不满意。你是如何安装所有的零碎的?
  • 老实说,我不记得安装过程的确切细节,但 Matplotlib 是在很久以前安装的,后来用 pip 更新了。 Kivy 是使用自制软件安装的:link.
  • 您可以尝试他们的开发版本或将 matplot 安装到他们提供的捆绑虚拟环境中。我看不出自制说明如何保证您获得兼容版本的 SDL
  • 您能详细描述一下您的建议吗? homebrew/pip 安装是网站上推荐的方法,为什么你怀疑它不起作用?
  • 如果先导入kivy会怎样?

标签: python matplotlib kivy


【解决方案1】:

我通过运行解决了这个问题

pip install kivy-gardens
garden install matplotlib

我不确定为什么会这样,但它确实删除了 NSException 的这个根。

我现在得到一个不同的 NSException,这是由不同的依赖关系相互作用引起的,我将发布为 new question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2012-09-27
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多