运行python脚本时中止陷阱:6
我正在开发一个显示动画的python程序,因此我正在使用pyglet。到目前为止,我一直在使用Psychopy附带的python编译器,但现在我需要使这个程序尽可能独立 我用Windows机器完成了这项任务,在OSX的情况下,为了安装pyglet,我遵循了这项任务。但是,当我现在运行程序时,它会返回以下内容:运行python脚本时中止陷阱:6,python,macos,pyglet,psychopy,Python,Macos,Pyglet,Psychopy,我正在开发一个显示动画的python程序,因此我正在使用pyglet。到目前为止,我一直在使用Psychopy附带的python编译器,但现在我需要使这个程序尽可能独立 我用Windows机器完成了这项任务,在OSX的情况下,为了安装pyglet,我遵循了这项任务。但是,当我现在运行程序时,它会返回以下内容: >>>> python 140603_plaid8.py 2014-06-17 12:25:02.512 Python[1713:d07] ApplePersist
>>>> 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
我不明白这个错误是什么意思,有人能帮我理解我做错了什么吗?在这种情况下,错误消息不会告诉我们太多。您需要做的(通常是调试)是找出哪些成功,哪些失败,以便缩小问题的范围 从一个只导入pyglet的脚本开始。如果可行,则导入pyglet并打开窗口等 当您知道是哪一行导致错误发生时,请返回报告
Jon我找到了出现此错误的原因。这是因为我使用库TKinter,如果我注释掉我使用TKinter的行,这个错误不会出现,它会继续执行程序
当我发现在OSX中使用TKinter的正确方法时,我将编辑这个答案。但我首先关心的是pyglet动画,它在OSX中不起作用,但在Windows中起作用。我在使用OpenCV时遇到了类似的错误。在谷歌搜索了一段时间后,我发现错误可能与新的macOS有关。它不允许调用未版本化的dylibs。我在这里找到了解决方案: 在您的终端中:
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
按如下方式运行Python脚本:
$ PYTHONVERBOSE=3 python your_script.py
检查中止陷阱: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卸载asn1crypto
可能不起作用。)在Python(MacOS 10.15.5)中导入asn1crypto
时,我遇到了同样的失败。使用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
我已经找到了出现此错误的原因。这是因为我使用库TKinter,如果我注释掉我使用TKinter的行,则不会出现此错误。然而,我期望的在Windows上工作的动画没有出现,它只显示一个黑色窗口。我认为用这些信息更新主要问题并关闭这个问题会很好。这样人们就知道如果遇到它该怎么办了。关于动画不工作,你可以发布一个新的问题,特别是,当然发布一个复制错误的短代码(在Windows上工作,但在mac上不工作)。谢谢你的回答。我终于找到了这个错误出现的原因。这是因为我使用TKinter,当我注释掉使用该库的行时,错误不会出现。但是,我期望的并在Windows上工作的动画没有出现。因此,我将按照你的建议开始一个简单的脚本。你没有告诉我们你使用“pyglet动画”的意思,也没有告诉我们它“不起作用”的方式。我们不能在这么小的细节上帮你。代码和/或错误信息对于获得任何有用的answer@Jon,我已经发布了有关动画的帖子,感谢您的反馈。您是否尝试将matplotlib更改为TkAgg?matplotlib.use('TkAgg')当你说“pip3安装--升级packagename”时,你在说什么样的packagename?pip3安装--升级pyopenssl?自从我将mac OS更新到Catalina之后,我就面临着同样的问题。我只是按照这里的步骤来做,没有做最后一个(pip安装),现在一切都很好,这正是我需要找出问题的原因。即使我尝试使用
brew
切换我的openssl
版本,我仍然会遇到这些中止。同样有趣的是,我的问题也源于asn1crypto
包。