def start_kernel(self, **kw):
        shell, sub, stdin, hb = self.shell_address, self.sub_address, \
            self.stdin_address, self.hb_address
        if shell[0] not in LOCAL_IPS or sub[0] not in LOCAL_IPS or \
                stdin[0] not in LOCAL_IPS or hb[0] not in LOCAL_IPS:
            raise RuntimeError("Can only launch a kernel on a local interface. "
                               "Make sure that the '*_address' attributes are "
                               "configured properly. "
                               "Currently valid addresses are: %s"%LOCAL_IPS
                               )
                    
        self._launch_args = kw.copy()
        if kw.pop('ipython', True):
            from .ipkernel import launch_kernel
        else:
            from .pykernel import launch_kernel
        self.kernel, xrep, pub, req, _hb = launch_kernel(
            shell_port=shell[1], iopub_port=sub[1],
            stdin_port=stdin[1], hb_port=hb[1], **kw)
        self.shell_address = (shell[0], xrep)
        self.sub_address = (sub[0], pub)
        self.stdin_address = (stdin[0], req)
        self.hb_address = (hb[0], _hb)
Starts a kernel process and configures the manager to use it.
dataset/ETHPy150Open ipython/ipython-py3k/IPython/zmq/kernelmanager.py/KernelManager.start_kernel