【问题标题】:Abort trap: 6 when running a python script中止陷阱:运行 python 脚本时为 6
【发布时间】:2014-06-18 13:43:54
【问题描述】:

我正在开发一个显示动画的 python 程序,因此我使用的是 pyglet。到目前为止,我一直在使用 Psychopy 附带的 python 编译器,但现在我需要让这个程序尽可能地独立。

我已经用 Windows 机器完成了这项任务,在 OSX 的情况下,我遵循this post 来安装 pyglet。但是,当我现在运行程序时,它会返回:

>>>> python 140603_plaid8.py
2014-06-17 12:25:02.512 Python[1713:d07] ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to /var/folders/fk/1plt8wj53_d183pv59scmg4m0000gn/T/org.python.python.savedState
no input received
CONFIG FILE LOADED
TRIALS FILE LOADED
2014-06-17 12:25:02.661 Python[1713:d07] -[NSApplication _setup:]: unrecognized selector sent to instance 0x102d3b5c0
2014-06-17 12:25:02.662 Python[1713:d07] An uncaught exception was raised
2014-06-17 12:25:02.663 Python[1713:d07] -[NSApplication _setup:]: unrecognized selector sent to instance 0x102d3b5c0
2014-06-17 12:25:02.663 Python[1713:d07] (
    0   CoreFoundation                      0x00007fff8948f25c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff87f16e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8949212d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x00007fff893ed322 ___forwarding___ + 1010
    4   CoreFoundation                      0x00007fff893ecea8 _CF_forwarding_prep_0 + 120
    5   Tk                                  0x0000000108253ed6 TkpInit + 459
    6   Tk                                  0x00000001081d1b0f Tk_Init + 1687
    7   _tkinter.so                         0x00000001080b4c0d Tcl_AppInit + 77
    8   _tkinter.so                         0x00000001080b3657 Tkinter_Create + 919
    9   Python                              0x00000001000c2fad PyEval_EvalFrameEx + 21405
    10  Python                              0x00000001000c4fb3 PyEval_EvalCodeEx + 2115
    11  Python                              0x000000010003eac0 function_call + 176
    12  Python                              0x000000010000ceb2 PyObject_Call + 98
    13  Python                              0x000000010001f56d instancemethod_call + 365
    14  Python                              0x000000010000ceb2 PyObject_Call + 98
    15  Python                              0x00000001000bc957 PyEval_CallObjectWithKeywords + 87
    16  Python                              0x000000010002285e PyInstance_New + 126
    17  Python                              0x000000010000ceb2 PyObject_Call + 98
    18  Python                              0x00000001000c0c60 PyEval_EvalFrameEx + 12368
    19  Python                              0x00000001000c4fb3 PyEval_EvalCodeEx + 2115
    20  Python                              0x000000010003eac0 function_call + 176
    21  Python                              0x000000010000ceb2 PyObject_Call + 98
    22  Python                              0x000000010001f56d instancemethod_call + 365
    23  Python                              0x000000010000ceb2 PyObject_Call + 98
    24  Python                              0x00000001000bc957 PyEval_CallObjectWithKeywords + 87
    25  Python                              0x000000010002285e PyInstance_New + 126
    26  Python                              0x000000010000ceb2 PyObject_Call + 98
    27  Python                              0x00000001000c0c60 PyEval_EvalFrameEx + 12368
    28  Python                              0x00000001000c4fb3 PyEval_EvalCodeEx + 2115
    29  Python                              0x00000001000c50d6 PyEval_EvalCode + 54
    30  Python                              0x00000001000e995e PyRun_FileExFlags + 174
    31  Python                              0x00000001000e9bfa PyRun_SimpleFileExFlags + 458
    32  Python                              0x0000000100100c0d Py_Main + 3101
    33  Python                              0x0000000100000f14 Python + 3860
    34  ???                                 0x0000000000000002 0x0 + 2
)
2014-06-17 12:25:02.664 Python[1713:d07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication _setup:]: unrecognized selector sent to instance 0x102d3b5c0'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff8948f25c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff87f16e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8949212d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x00007fff893ed322 ___forwarding___ + 1010
    4   CoreFoundation                      0x00007fff893ecea8 _CF_forwarding_prep_0 + 120
    5   Tk                                  0x0000000108253ed6 TkpInit + 459
    6   Tk                                  0x00000001081d1b0f Tk_Init + 1687
    7   _tkinter.so                         0x00000001080b4c0d Tcl_AppInit + 77
    8   _tkinter.so                         0x00000001080b3657 Tkinter_Create + 919
    9   Python                              0x00000001000c2fad PyEval_EvalFrameEx + 21405
    10  Python                              0x00000001000c4fb3 PyEval_EvalCodeEx + 2115
    11  Python                              0x000000010003eac0 function_call + 176
    12  Python                              0x000000010000ceb2 PyObject_Call + 98
    13  Python                              0x000000010001f56d instancemethod_call + 365
    14  Python                              0x000000010000ceb2 PyObject_Call + 98
    15  Python                              0x00000001000bc957 PyEval_CallObjectWithKeywords + 87
    16  Python                              0x000000010002285e PyInstance_New + 126
    17  Python                              0x000000010000ceb2 PyObject_Call + 98
    18  Python                              0x00000001000c0c60 PyEval_EvalFrameEx + 12368
    19  Python                              0x00000001000c4fb3 PyEval_EvalCodeEx + 2115
    20  Python                              0x000000010003eac0 function_call + 176
    21  Python                              0x000000010000ceb2 PyObject_Call + 98
    22  Python                              0x000000010001f56d instancemethod_call + 365
    23  Python                              0x000000010000ceb2 PyObject_Call + 98
    24  Python                              0x00000001000bc957 PyEval_CallObjectWithKeywords + 87
    25  Python                              0x000000010002285e PyInstance_New + 126
    26  Python                              0x000000010000ceb2 PyObject_Call + 98
    27  Python                              0x00000001000c0c60 PyEval_EvalFrameEx + 12368
    28  Python                              0x00000001000c4fb3 PyEval_EvalCodeEx + 2115
    29  Python                              0x00000001000c50d6 PyEval_EvalCode + 54
    30  Python                              0x00000001000e995e PyRun_FileExFlags + 174
    31  Python                              0x00000001000e9bfa PyRun_SimpleFileExFlags + 458
    32  Python                              0x0000000100100c0d Py_Main + 3101
    33  Python                              0x0000000100000f14 Python + 3860
    34  ???                                 0x0000000000000002 0x0 + 2
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6

我不明白这个错误是什么意思,谁能帮我理解我做错了什么?

【问题讨论】:

  • 我找到了出现这个错误的原因。这是因为我使用了库TKinter,如果我注释掉我使用TKinter的行,就不会出现这个错误。但是,我期望并在 Windows 上运行的动画没有出现,它只出现一个黑色窗口。
  • 我认为用此信息更新主要问题并关闭此问题会很棒。然后人们知道如果他们遇到它该怎么办。关于动画不起作用,您可以专门发布一个新问题,当然发布一个复制错误的简短代码(适用于 Windows,但不适用于 mac)。

标签: python macos pyglet psychopy


【解决方案1】:

我在使用 OpenCV 时遇到了类似的错误。谷歌搜索了一段时间后,我发现错误可能出在新的 macOS 上。它不允许调用未版本化的 dylib。我在这里找到了解决方案:

https://forums.developer.apple.com/thread/119429

在您的终端中:

brew update && brew upgrade && brew install openssl
cd /usr/local/Cellar/openssl/1.0.2t/lib
sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/local/lib/
cd /usr/local/lib
sudo ln -s libssl.1.0.0.dylib libssl.dylib
sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib
pip3 install --upgrade packagename

【讨论】:

  • 当你说“pip3 install --upgrade packagname”时,你在说什么包名?
  • pip3 install --upgrade pyopenssl ?
  • 自从我将 mac OS 更新到 Catalina 后,我遇到了同样的问题。我只是按照这里的步骤,没有做最后一个(pip install),现在一切正常
【解决方案2】:

像这样运行你的 Python 脚本:

$ PYTHONVERBOSE=3 python your_script.py

查看Abort trap: 6之前的最后一条语句,如:

import asn1crypto._perf._big_num_ctypes # precompiled from ...
Abort trap: 6

然后,在独立的 Python 解释器中运行它:

$ python
Python 2.7.17 (default, May  6 2020, 10:47:56) 
[GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.32.59)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import asn1crypto._perf._big_num_ctypes
Abort trap: 6

那么您就知道问题出在asn1crypto 模块上,在这种情况下。深入研究该文件并找到更多...

但是对于这种特殊情况,只需删除asn1crypto包的目录,然后再试一次。 (pip uninstall asn1crypto 可能不起作用。)

【讨论】:

  • 这正是我需要找出导致我的问题的原因。即使我尝试使用brewswitch 我的openssl 版本,我仍然得到这些中止。看到我的问题也源于asn1crypto 包也很有趣。
【解决方案3】:

在这种情况下,错误消息并没有告诉我们太多信息。您需要做的(通常在调试中)是找出什么成功和什么失败,以缩小问题范围。

从只导入 pyglet 的脚本开始。如果可行,则导入 pyglet 并打开一个窗口等...

当您知道是哪一行导致错误发生时报告。

乔恩

【讨论】:

  • 感谢您的回答。我终于找到了为什么会出现这个错误。那是因为我用的是TKinter,所以当我注释掉使用这个库的那几行时,并没有出现错误。但是,我期望并在 Windows 上运行的动画没有出现。因此,我将听从您的建议并开始一个简单的脚本。
【解决方案4】:

我找到了出现这个错误的原因。因为我使用的是TKinter库,如果我注释掉我使用TKinter的那几行,就不会出现这个错误,继续执行程序。

当我发现在 OSX 中使用 TKinter 的正确方法时,我将编辑此答案。但我首先关心的是 pyglet 动画,它在 OSX 中不起作用,但在 Windows 中起作用。

【讨论】:

  • 您没有告诉我们使用“pyglet 动画”是什么意思,也没有告诉我们它“不起作用”的方式。我们无法为您提供这么少的细节。代码和/或错误信息对于获得任何有用的答案至关重要
  • @Jon,关于动画,我已经发布了another question,感谢您的反馈。
  • 您是否尝试过将支持的 matplotlib 更改为 TkAgg? matplotlib.use('TkAgg')
【解决方案5】:

我在 Python 中导入 asn1crypto 时遇到了同样的失败(在 MacOS 10.15.5 上)。使用 brew 卸载然后重新安装 openssl 对我有用:

brew uninstall --ignore-dependencies openssl

brew 警告我有一些文件没有被删除(例如/usr/local/etc/openssl@1.1/cert.pem),我将它们移到了备份位置:

sudo mv /usr/local/etc/openssl@1.1 ~/openssl@1.1-usrlocalbackup

然后使用 brew 重新安装 openssl 解决了问题:

brew install openssl

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2019-07-12
    相关资源
    最近更新 更多