32 lines
833 B
Python
32 lines
833 B
Python
|
from __future__ import print_function
|
||
|
import os
|
||
|
|
||
|
from IPython.kernel.inprocess import InProcessKernelManager
|
||
|
from IPython.terminal.console.interactiveshell import ZMQTerminalInteractiveShell
|
||
|
|
||
|
|
||
|
def print_process_id():
|
||
|
print('Process ID is:', os.getpid())
|
||
|
|
||
|
|
||
|
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()
|
||
|
|
||
|
shell = ZMQTerminalInteractiveShell(manager=kernel_manager, client=client)
|
||
|
shell.mainloop()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|