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() |