Use full power of Python in Slicer

FWIW, unfortunately on mac with today’s nightly the pip install works and reports no errors, but when running the example script it crashes with the trace pasted below.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libpython3.6m.dylib           	0x000000010624b134 PyUnicode_InternInPlace + 116
1   libpython3.6m.dylib           	0x000000010626c3cc PyUnicode_InternFromString + 60
2   libpython3.6m.dylib           	0x000000010621eaa0 PyObject_GetAttrString + 48
3   libpython3.6m.dylib           	0x00000001061dd088 PyObject_CallMethod + 120
4   libCTKScriptingPythonWidgets.0.1.dylib	0x00000001016f0ed0 ctkPythonConsolePrivate::push(QString const&) + 144
5   libCTKScriptingPythonWidgets.0.1.dylib	0x00000001016f1f22 ctkPythonConsole::executeCommand(QString const&) + 18
6   libCTKWidgets.0.1.dylib       	0x0000000101722243 ctkConsolePrivate::internalExecuteCommand() + 563
7   libCTKWidgets.0.1.dylib       	0x0000000101721aa8 ctkConsolePrivate::keyPressEvent(QKeyEvent*) + 2120
8   org.qt-project.QtWidgets      	0x0000000106d7ec90 QWidget::event(QEvent*) + 5104
9   org.qt-project.QtWidgets      	0x0000000106e31c8d QFrame::event(QEvent*) + 45
10  org.qt-project.QtWidgets      	0x0000000106e3b78c QAbstractScrollArea::event(QEvent*) + 364
11  org.qt-project.QtWidgets      	0x0000000106f22127 QTextEdit::event(QEvent*) + 407
12  org.qt-project.QtWidgets      	0x0000000106d458cd QApplicationPrivate::notify_helper(QObject*, QEvent*) + 301
13  org.qt-project.QtWidgets      	0x0000000106d46ddd QApplication::notify(QObject*, QEvent*) + 797
14  libqSlicerBaseQTGUI.dylib     	0x00000001010bf3d6 qSlicerApplication::notify(QObject*, QEvent*) + 22
15  org.qt-project.QtCore         	0x000000010d9d9c84 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
16  org.qt-project.QtWidgets      	0x0000000106d9daf7 0x106d35000 + 428791
17  org.qt-project.QtWidgets      	0x0000000106d458cd QApplicationPrivate::notify_helper(QObject*, QEvent*) + 301
18  org.qt-project.QtWidgets      	0x0000000106d46c47 QApplication::notify(QObject*, QEvent*) + 391
19  libqSlicerBaseQTGUI.dylib     	0x00000001010bf3d6 qSlicerApplication::notify(QObject*, QEvent*) + 22
20  org.qt-project.QtCore         	0x000000010d9d9c84 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
21  org.qt-project.QtGui          	0x000000010d2fa2ee QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) + 174
22  org.qt-project.QtGui          	0x000000010d2e095b QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 155
23  org.qt-project.QtGui          	0x000000010d2dc3bc QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 572
24  libqcocoa.dylib               	0x0000000116f63aa3 0x116f41000 + 141987
25  libqcocoa.dylib               	0x0000000116f63be8 0x116f41000 + 142312
26  com.apple.AppKit              	0x00007fff4b533b9f -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 6840
27  com.apple.AppKit              	0x00007fff4b531e9f -[NSWindow(NSEventRouting) sendEvent:] + 478
28  libqcocoa.dylib               	0x0000000116f68217 0x116f41000 + 160279
29  com.apple.AppKit              	0x00007fff4b3d2101 -[NSApplication(NSEvent) sendEvent:] + 2953
30  libqcocoa.dylib               	0x0000000116f6e669 0x116f41000 + 185961
31  com.apple.AppKit              	0x00007fff4b3bfee8 -[NSApplication run] + 755
32  libwx_osx_cocoau_core-3.0.0.4.0.dylib	0x000000012bf72edf wxApp::CallOnInit() + 143
33  _core.cpython-36m-darwin.so   	0x000000012b417724 wxPyApp::_BootstrapApp() + 532
34  _core.cpython-36m-darwin.so   	0x000000012b41b604 meth_wxPyApp__BootstrapApp(_object*, _object*) + 100
35  libpython3.6m.dylib           	0x000000010621c00c _PyCFunction_FastCallDict + 172
36  libpython3.6m.dylib           	0x000000010629ac0f call_function + 479
37  libpython3.6m.dylib           	0x0000000106297632 _PyEval_EvalFrameDefault + 25826
38  libpython3.6m.dylib           	0x000000010629bb19 _PyEval_EvalCodeWithName + 3641
39  libpython3.6m.dylib           	0x000000010629c652 _PyFunction_FastCallDict + 802
40  libpython3.6m.dylib           	0x00000001061dc8a8 _PyObject_FastCallDict + 360
41  libpython3.6m.dylib           	0x00000001061dc9c5 _PyObject_Call_Prepend + 149
42  libpython3.6m.dylib           	0x00000001061dc5f6 PyObject_Call + 102
43  libpython3.6m.dylib           	0x0000000106233d7e slot_tp_init + 158
44  libpython3.6m.dylib           	0x000000010622feb9 type_call + 313
45  libpython3.6m.dylib           	0x00000001061dc875 _PyObject_FastCallDict + 309
46  libpython3.6m.dylib           	0x000000010629ab09 call_function + 217
47  libpython3.6m.dylib           	0x0000000106297632 _PyEval_EvalFrameDefault + 25826
48  libpython3.6m.dylib           	0x000000010629bb19 _PyEval_EvalCodeWithName + 3641
49  libpython3.6m.dylib           	0x000000010629c652 _PyFunction_FastCallDict + 802
50  libpython3.6m.dylib           	0x00000001061dc8a8 _PyObject_FastCallDict + 360
51  libpython3.6m.dylib           	0x00000001061dc9c5 _PyObject_Call_Prepend + 149
52  libpython3.6m.dylib           	0x00000001061dc5f6 PyObject_Call + 102
53  libpython3.6m.dylib           	0x0000000106297933 _PyEval_EvalFrameDefault + 26595
54  libpython3.6m.dylib           	0x000000010629bb19 _PyEval_EvalCodeWithName + 3641
55  libpython3.6m.dylib           	0x00000001062910fb PyEval_EvalCodeEx + 107
56  libpython3.6m.dylib           	0x000000010620233d function_call + 381
57  libpython3.6m.dylib           	0x00000001061dc5f6 PyObject_Call + 102
58  libpython3.6m.dylib           	0x0000000106297933 _PyEval_EvalFrameDefault + 26595
59  libpython3.6m.dylib           	0x000000010629bb19 _PyEval_EvalCodeWithName + 3641
60  libpython3.6m.dylib           	0x000000010629c316 fast_function + 742
61  libpython3.6m.dylib           	0x000000010629abe9 call_function + 441
62  libpython3.6m.dylib           	0x0000000106297632 _PyEval_EvalFrameDefault + 25826
63  libpython3.6m.dylib           	0x000000010629bb19 _PyEval_EvalCodeWithName + 3641
64  libpython3.6m.dylib           	0x0000000106291084 PyEval_EvalCode + 100
65  libpython3.6m.dylib           	0x000000010628e7e0 builtin_exec + 528
66  libpython3.6m.dylib           	0x000000010621c00c _PyCFunction_FastCallDict + 172
67  libpython3.6m.dylib           	0x000000010629ac0f call_function + 479
68  libpython3.6m.dylib           	0x0000000106297632 _PyEval_EvalFrameDefault + 25826
69  libpython3.6m.dylib           	0x000000010629c26e fast_function + 574
70  libpython3.6m.dylib           	0x000000010629abe9 call_function + 441
71  libpython3.6m.dylib           	0x0000000106297632 _PyEval_EvalFrameDefault + 25826
72  libpython3.6m.dylib           	0x000000010629bb19 _PyEval_EvalCodeWithName + 3641
73  libpython3.6m.dylib           	0x000000010629c316 fast_function + 742
74  libpython3.6m.dylib           	0x000000010629abe9 call_function + 441
75  libpython3.6m.dylib           	0x0000000106297632 _PyEval_EvalFrameDefault + 25826
76  libpython3.6m.dylib           	0x000000010629c6ec _PyFunction_FastCallDict + 956
77  libpython3.6m.dylib           	0x00000001061dc8a8 _PyObject_FastCallDict + 360
78  libpython3.6m.dylib           	0x00000001061dc9c5 _PyObject_Call_Prepend + 149
79  libpython3.6m.dylib           	0x00000001061dc875 _PyObject_FastCallDict + 309
80  libpython3.6m.dylib           	0x00000001061dd1d4 callmethod + 180
81  libpython3.6m.dylib           	0x00000001061dd0c4 PyObject_CallMethod + 180
82  libCTKScriptingPythonWidgets.0.1.dylib	0x00000001016f0ed0 ctkPythonConsolePrivate::push(QString const&) + 144
83  libCTKScriptingPythonWidgets.0.1.dylib	0x00000001016f1f22 ctkPythonConsole::executeCommand(QString const&) + 18
84  libCTKWidgets.0.1.dylib       	0x0000000101722243 ctkConsolePrivate::internalExecuteCommand() + 563
85  libCTKWidgets.0.1.dylib       	0x0000000101724afb ctkConsolePrivate::pasteText(QString const&) + 459
86  libCTKWidgets.0.1.dylib       	0x0000000101724893 ctkConsolePrivate::insertFromMimeData(QMimeData const*) + 115
87  libCTKWidgets.0.1.dylib       	0x00000001017213b9 ctkConsolePrivate::keyPressEvent(QKeyEvent*) + 345
88  org.qt-project.QtWidgets      	0x0000000106d7ec90 QWidget::event(QEvent*) + 5104
89  org.qt-project.QtWidgets      	0x0000000106e31c8d QFrame::event(QEvent*) + 45
90  org.qt-project.QtWidgets      	0x0000000106e3b78c QAbstractScrollArea::event(QEvent*) + 364
91  org.qt-project.QtWidgets      	0x0000000106f22127 QTextEdit::event(QEvent*) + 407
92  org.qt-project.QtWidgets      	0x0000000106d458cd QApplicationPrivate::notify_helper(QObject*, QEvent*) + 301
93  org.qt-project.QtWidgets      	0x0000000106d46ddd QApplication::notify(QObject*, QEvent*) + 797
94  libqSlicerBaseQTGUI.dylib     	0x00000001010bf3d6 qSlicerApplication::notify(QObject*, QEvent*) + 22
95  org.qt-project.QtCore         	0x000000010d9d9c84 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
96  org.qt-project.QtWidgets      	0x0000000106d9daf7 0x106d35000 + 428791
97  org.qt-project.QtWidgets      	0x0000000106d458cd QApplicationPrivate::notify_helper(QObject*, QEvent*) + 301
98  org.qt-project.QtWidgets      	0x0000000106d46c47 QApplication::notify(QObject*, QEvent*) + 391
99  libqSlicerBaseQTGUI.dylib     	0x00000001010bf3d6 qSlicerApplication::notify(QObject*, QEvent*) + 22
100 org.qt-project.QtCore         	0x000000010d9d9c84 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
101 org.qt-project.QtGui          	0x000000010d2fa2ee QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) + 174
102 org.qt-project.QtGui          	0x000000010d2e095b QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 155
103 org.qt-project.QtGui          	0x000000010d2dc3bc QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 572
104 libqcocoa.dylib               	0x0000000116f63aa3 0x116f41000 + 141987
105 libqcocoa.dylib               	0x0000000116f63be8 0x116f41000 + 142312
106 com.apple.AppKit              	0x00007fff4b533b9f -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 6840
107 com.apple.AppKit              	0x00007fff4b531e9f -[NSWindow(NSEventRouting) sendEvent:] + 478
108 libqcocoa.dylib               	0x0000000116f68217 0x116f41000 + 160279
109 libqcocoa.dylib               	0x0000000116f6f1d0 0x116f41000 + 188880
110 com.apple.AppKit              	0x00007fff4b713f99 -[NSMenu _performKeyEquivalentWithDelegate:] + 142
111 com.apple.AppKit              	0x00007fff4b714169 -[NSMenu _performKeyEquivalentWithDelegate:] + 606
112 com.apple.AppKit              	0x00007fff4b713b2b -[NSMenu performKeyEquivalent:] + 68
113 com.apple.AppKit              	0x00007fff4bb99517 routeKeyEquivalent + 860
114 com.apple.AppKit              	0x00007fff4b3d19a0 -[NSApplication(NSEvent) sendEvent:] + 1064
115 libqcocoa.dylib               	0x0000000116f6e669 0x116f41000 + 185961
116 com.apple.AppKit              	0x00007fff4b3bfee8 -[NSApplication run] + 755
117 libqcocoa.dylib               	0x0000000116f6ae0d 0x116f41000 + 171533
118 org.qt-project.QtCore         	0x000000010d9d5641 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 417
119 org.qt-project.QtCore         	0x000000010d9da358 QCoreApplication::exec() + 392
120                               	0x0000000100d42cec main + 540
121 libdyld.dylib                 	0x00007fff7a2613d5 start + 1