embedded_terminal.py
31 lines
| 833 B
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r13991 | from __future__ import print_function | ||
MinRK
|
r10305 | import os | ||
from IPython.kernel.inprocess import InProcessKernelManager | ||||
Martin Spacek
|
r11360 | from IPython.terminal.console.interactiveshell import ZMQTerminalInteractiveShell | ||
MinRK
|
r10305 | |||
def print_process_id(): | ||||
Thomas Kluyver
|
r13991 | print('Process ID is:', os.getpid()) | ||
MinRK
|
r10305 | |||
def main(): | ||||
print_process_id() | ||||
# Create an in-process kernel | ||||
# >>> print_process_id() | ||||
# will print the same process ID as the main process | ||||
kernel_manager = InProcessKernelManager() | ||||
kernel_manager.start_kernel() | ||||
kernel = kernel_manager.kernel | ||||
kernel.gui = 'qt4' | ||||
kernel.shell.push({'foo': 43, 'print_process_id': print_process_id}) | ||||
client = kernel_manager.client() | ||||
client.start_channels() | ||||
MinRK
|
r10333 | shell = ZMQTerminalInteractiveShell(manager=kernel_manager, client=client) | ||
MinRK
|
r10305 | shell.mainloop() | ||
if __name__ == '__main__': | ||||
main() | ||||