У меня возникает следующая проблема: после рендеринга с использованием OpenGL я пытаюсь запустить окно tk, но кажется, что python падает (каждый раз).Выполнение:
import tkinter as tk
tk.Tk()
дает небольшое окно и без сбоев.работает:
import glfw
assert glfw.init()
glfw.window_hint(glfw.VISIBLE, False)
glfw.window_hint(glfw.CONTEXT_VERSION_MAJOR, 3);
glfw.window_hint(glfw.CONTEXT_VERSION_MINOR, 2);
glfw.window_hint(glfw.OPENGL_FORWARD_COMPAT, 1);
glfw.window_hint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE)
window = glfw.create_window(100, 100, "hidden window", None, None)
и затем использовать окно для вычислений.Тем не менее, запуск их обоих, как это:
import glfw
import tkinter as tk
assert glfw.init()
glfw.window_hint(glfw.VISIBLE, False)
glfw.window_hint(glfw.CONTEXT_VERSION_MAJOR, 3);
glfw.window_hint(glfw.CONTEXT_VERSION_MINOR, 2);
glfw.window_hint(glfw.OPENGL_FORWARD_COMPAT, 1);
glfw.window_hint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE)
window = glfw.create_window(100, 100, "hidden window", None, None)
tk.Tk()
приводит к сбою:
2018-11-20 09:21:38.466 Python[52111:1218385] -[GLFWApplication _setup:]: unrecognized selector sent to instance 0x7fb1b6febf10
2018-11-20 09:21:38.468 Python[52111:1218385] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GLFWApplication _setup:]: unrecognized selector sent to instance 0x7fb1b6febf10'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff4b756e65 __exceptionPreprocess + 256
1 libobjc.A.dylib 0x00007fff777ad720 objc_exception_throw + 48
2 CoreFoundation 0x00007fff4b7d422d -[NSObject(NSObject) __retain_OA] + 0
3 CoreFoundation 0x00007fff4b6f8820 ___forwarding___ + 1486
4 CoreFoundation 0x00007fff4b6f81c8 _CF_forwarding_prep_0 + 120
5 libtk8.6.dylib 0x000000011b24c1f2 TkpInit + 408
6 libtk8.6.dylib 0x000000011b1bbaac Initialize + 2454
7 _tkinter.cpython-36m-darwin.so 0x000000011a067dd4 Tcl_AppInit + 84
8 _tkinter.cpython-36m-darwin.so 0x000000011a067aab _tkinter_create + 1115
9 Python 0x000000010de60e1b _PyCFunction_FastCallDict + 491
10 Python 0x000000010dee3a87 call_function + 439
11 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
12 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
13 Python 0x000000010dee50bb _PyFunction_FastCallDict + 763
14 Python 0x000000010de17e57 _PyObject_FastCallDict + 247
15 Python 0x000000010de17f75 _PyObject_Call_Prepend + 149
16 Python 0x000000010de17c90 PyObject_Call + 96
17 Python 0x000000010de7904d slot_tp_init + 125
18 Python 0x000000010de75279 type_call + 313
19 Python 0x000000010de17e25 _PyObject_FastCallDict + 197
20 Python 0x000000010dee3988 call_function + 184
21 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
22 Python 0x000000010dee4cfd fast_function + 381
23 Python 0x000000010dee3a61 call_function + 401
24 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
25 Python 0x000000010dee4cfd fast_function + 381
26 Python 0x000000010dee3a61 call_function + 401
27 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
28 Python 0x000000010dee4cfd fast_function + 381
29 Python 0x000000010dee3a61 call_function + 401
30 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
31 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
32 Python 0x000000010ded9584 PyEval_EvalCode + 100
33 Python 0x000000010ded6c04 builtin_exec + 548
34 Python 0x000000010de60e1b _PyCFunction_FastCallDict + 491
35 Python 0x000000010dee3a87 call_function + 439
36 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
37 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
38 Python 0x000000010dee4da1 fast_function + 545
39 Python 0x000000010dee3a61 call_function + 401
40 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
41 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
42 Python 0x000000010dee4da1 fast_function + 545
43 Python 0x000000010dee3a61 call_function + 401
44 Python 0x000000010dee0296 _PyEval_EvalFrameDefault + 27718
45 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
46 Python 0x000000010ded9584 PyEval_EvalCode + 100
47 Python 0x000000010ded6c04 builtin_exec + 548
48 Python 0x000000010de60e1b _PyCFunction_FastCallDict + 491
49 Python 0x000000010dee3a87 call_function + 439
50 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
51 Python 0x000000010dee4cfd fast_function + 381
52 Python 0x000000010dee3a61 call_function + 401
53 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
54 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
55 Python 0x000000010dee4da1 fast_function + 545
56 Python 0x000000010dee3a61 call_function + 401
57 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
58 Python 0x000000010dee4cfd fast_function + 381
59 Python 0x000000010dee3a61 call_function + 401
60 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
61 Python 0x000000010dee4cfd fast_function + 381
62 Python 0x000000010dee3a61 call_function + 401
63 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
64 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
65 Python 0x000000010dee4da1 fast_function + 545
66 Python 0x000000010dee3a61 call_function + 401
67 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
68 Python 0x000000010dee4cfd fast_function + 381
69 Python 0x000000010dee3a61 call_function + 401
70 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
71 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
72 Python 0x000000010dee4da1 fast_function + 545
73 Python 0x000000010dee3a61 call_function + 401
74 Python 0x000000010dee01f7 _PyEval_EvalFrameDefault + 27559
75 Python 0x000000010dee44ef _PyEval_EvalCodeWithName + 2447
76 Python 0x000000010ded9584 PyEval_EvalCode + 100
77 Python 0x000000010df0f5f1 PyRun_FileExFlags + 209
78 Python 0x000000010df0ee62 PyRun_SimpleFileExFlags + 882
79 Python 0x000000010df28db2 Py_Main + 3554
80 Python 0x000000010de05df8 Python + 3576
81 libdyld.dylib 0x00007fff7887c08d start + 1
82 ??? 0x0000000000000004 0x0 + 4
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
Моя среда выглядит следующим образом:MacOs 10.14.1 python 3.6.7 ActiveCTL 8.6 (проверено с помощью tk.CtlVersion) Используется OpenGL - 4.1 ([проверено с использованием glGetString (для достижения этого, а не для использования по умолчанию 2.1), я добавил все window_hints, согласно некоторымподсказки stackoverflow для MacOs)
Что я уже пробовал:Понижение activeCTL до 8.5 путем переключения на ActivePython 3.6.5 (поскольку я видел некоторые ссылки SO на ctl, имеющие проблемы с MacOS, и это должно было их решить)
ОБНОВЛЕНИЕ:
Я обнаружил, что обращение 2 вызовов метода "решает" проблему - программа не падает.Есть идеи почему?