Show More
@@ -16,10 +16,10 b' from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget' | |||
|
16 | 16 | from IPython.frontend.qt.kernelmanager import QtKernelManager |
|
17 | 17 | |
|
18 | 18 | #----------------------------------------------------------------------------- |
|
19 | # Constants | |
|
19 | # Network Constants | |
|
20 | 20 | #----------------------------------------------------------------------------- |
|
21 | 21 | |
|
22 | LOCALHOST = '127.0.0.1' | |
|
22 | from IPython.utils.localinterfaces import LOCALHOST, LOCAL_IPS | |
|
23 | 23 | |
|
24 | 24 | #----------------------------------------------------------------------------- |
|
25 | 25 | # Classes |
@@ -45,7 +45,7 b' class MainWindow(QtGui.QMainWindow):' | |||
|
45 | 45 | self._app = app |
|
46 | 46 | self._frontend = frontend |
|
47 | 47 | self._existing = existing |
|
48 |
if |
|
|
48 | if existing: | |
|
49 | 49 | self._may_close = may_close |
|
50 | 50 | else: |
|
51 | 51 | self._may_close = True |
@@ -144,12 +144,16 b' def main():' | |||
|
144 | 144 | rep_address=(args.ip, args.rep), |
|
145 | 145 | hb_address=(args.ip, args.hb)) |
|
146 | 146 | if not args.existing: |
|
147 | # if not args.ip in LOCAL_IPS+ALL_ALIAS: | |
|
148 | # raise ValueError("Must bind a local ip, such as: %s"%LOCAL_IPS) | |
|
149 | ||
|
150 | kwargs = dict(ip=args.ip) | |
|
147 | 151 | if args.pure: |
|
148 |
k |
|
|
152 | kwargs['ipython']=False | |
|
149 | 153 | elif args.pylab: |
|
150 |
k |
|
|
151 |
|
|
|
152 |
|
|
|
154 | kwargs['pylab']=args.pylab | |
|
155 | ||
|
156 | kernel_manager.start_kernel(**kwargs) | |
|
153 | 157 | kernel_manager.start_channels() |
|
154 | 158 | |
|
155 | 159 | local_kernel = (not args.existing) or args.ip == LOCALHOST |
@@ -16,6 +16,7 b' import zmq' | |||
|
16 | 16 | from IPython.core.ultratb import FormattedTB |
|
17 | 17 | from IPython.external.argparse import ArgumentParser |
|
18 | 18 | from IPython.utils import io |
|
19 | from IPython.utils.localinterfaces import LOCALHOST | |
|
19 | 20 | from displayhook import DisplayHook |
|
20 | 21 | from heartbeat import Heartbeat |
|
21 | 22 | from iostream import OutStream |
@@ -40,7 +41,7 b' def make_argument_parser():' | |||
|
40 | 41 | kernel entry points. |
|
41 | 42 | """ |
|
42 | 43 | parser = ArgumentParser() |
|
43 |
parser.add_argument('--ip', type=str, default= |
|
|
44 | parser.add_argument('--ip', type=str, default=LOCALHOST, | |
|
44 | 45 | help='set the kernel\'s IP address [default: local]') |
|
45 | 46 | parser.add_argument('--xrep', type=int, metavar='PORT', default=0, |
|
46 | 47 | help='set the XREP channel port [default: random]') |
@@ -17,6 +17,7 b' import uuid' | |||
|
17 | 17 | import zmq |
|
18 | 18 | import session |
|
19 | 19 | import completer |
|
20 | from IPython.utils.localinterfaces import LOCALHOST | |
|
20 | 21 | |
|
21 | 22 | #----------------------------------------------------------------------------- |
|
22 | 23 | # Classes and functions |
@@ -168,7 +169,7 b' class InteractiveClient(object):' | |||
|
168 | 169 | def main(): |
|
169 | 170 | # Defaults |
|
170 | 171 | #ip = '192.168.2.109' |
|
171 | ip = '127.0.0.1' | |
|
172 | ip = LOCALHOST | |
|
172 | 173 | #ip = '99.146.222.252' |
|
173 | 174 | port_base = 5575 |
|
174 | 175 | connection = ('tcp://%s' % ip) + ':%i' |
@@ -17,6 +17,8 b' from threading import Thread' | |||
|
17 | 17 | |
|
18 | 18 | import zmq |
|
19 | 19 | |
|
20 | from IPython.utils.localinterfaces import LOCALHOST | |
|
21 | ||
|
20 | 22 | #----------------------------------------------------------------------------- |
|
21 | 23 | # Code |
|
22 | 24 | #----------------------------------------------------------------------------- |
@@ -25,7 +27,7 b' import zmq' | |||
|
25 | 27 | class Heartbeat(Thread): |
|
26 | 28 | "A simple ping-pong style heartbeat that runs in a thread." |
|
27 | 29 | |
|
28 |
def __init__(self, context, addr=( |
|
|
30 | def __init__(self, context, addr=(LOCALHOST, 0)): | |
|
29 | 31 | Thread.__init__(self) |
|
30 | 32 | self.context = context |
|
31 | 33 | self.addr = addr |
@@ -534,12 +534,15 b' class GTKKernel(Kernel):' | |||
|
534 | 534 | # Kernel main and launch functions |
|
535 | 535 | #----------------------------------------------------------------------------- |
|
536 | 536 | |
|
537 | def launch_kernel(xrep_port=0, pub_port=0, req_port=0, hb_port=0, | |
|
537 | def launch_kernel(ip=None, xrep_port=0, pub_port=0, req_port=0, hb_port=0, | |
|
538 | 538 | independent=False, pylab=False): |
|
539 | 539 | """Launches a localhost kernel, binding to the specified ports. |
|
540 | 540 | |
|
541 | 541 | Parameters |
|
542 | 542 | ---------- |
|
543 | ip : str, optional | |
|
544 | The ip address the kernel will bind to. | |
|
545 | ||
|
543 | 546 | xrep_port : int, optional |
|
544 | 547 | The port to use for XREP channel. |
|
545 | 548 | |
@@ -574,6 +577,10 b' def launch_kernel(xrep_port=0, pub_port=0, req_port=0, hb_port=0,' | |||
|
574 | 577 | extra_arguments.append('--pylab') |
|
575 | 578 | if isinstance(pylab, basestring): |
|
576 | 579 | extra_arguments.append(pylab) |
|
580 | if ip is not None: | |
|
581 | extra_arguments.append('--ip') | |
|
582 | if isinstance(ip, basestring): | |
|
583 | extra_arguments.append(ip) | |
|
577 | 584 | return base_launch_kernel('from IPython.zmq.ipkernel import main; main()', |
|
578 | 585 | xrep_port, pub_port, req_port, hb_port, |
|
579 | 586 | independent, extra_arguments) |
@@ -31,6 +31,7 b' from zmq.eventloop import ioloop' | |||
|
31 | 31 | |
|
32 | 32 | # Local imports. |
|
33 | 33 | from IPython.utils import io |
|
34 | from IPython.utils.localinterfaces import LOCALHOST, LOCAL_IPS | |
|
34 | 35 | from IPython.utils.traitlets import HasTraits, Any, Instance, Type, TCPAddress |
|
35 | 36 | from session import Session |
|
36 | 37 | |
@@ -38,8 +39,6 b' from session import Session' | |||
|
38 | 39 | # Constants and exceptions |
|
39 | 40 | #----------------------------------------------------------------------------- |
|
40 | 41 | |
|
41 | LOCALHOST = '127.0.0.1' | |
|
42 | ||
|
43 | 42 | class InvalidPortNumber(Exception): |
|
44 | 43 | pass |
|
45 | 44 | |
@@ -724,24 +723,26 b' class KernelManager(HasTraits):' | |||
|
724 | 723 | """ |
|
725 | 724 | xreq, sub, rep, hb = self.xreq_address, self.sub_address, \ |
|
726 | 725 | self.rep_address, self.hb_address |
|
727 |
if xreq[0] |
|
|
728 |
rep[0] |
|
|
729 |
raise RuntimeError("Can only launch a kernel on |
|
|
726 | if xreq[0] not in LOCAL_IPS or sub[0] not in LOCAL_IPS or \ | |
|
727 | rep[0] not in LOCAL_IPS or hb[0] not in LOCAL_IPS: | |
|
728 | raise RuntimeError("Can only launch a kernel on a local interface. " | |
|
730 | 729 | "Make sure that the '*_address' attributes are " |
|
731 |
"configured properly." |
|
|
732 | ||
|
730 | "configured properly. " | |
|
731 | "Currently valid addresses are: %s"%LOCAL_IPS | |
|
732 | ) | |
|
733 | ||
|
733 | 734 | self._launch_args = kw.copy() |
|
734 | 735 | if kw.pop('ipython', True): |
|
735 | 736 | from ipkernel import launch_kernel |
|
736 | 737 | else: |
|
737 | 738 | from pykernel import launch_kernel |
|
738 | self.kernel, xrep, pub, req, hb = launch_kernel( | |
|
739 | self.kernel, xrep, pub, req, _hb = launch_kernel( | |
|
739 | 740 | xrep_port=xreq[1], pub_port=sub[1], |
|
740 | 741 | req_port=rep[1], hb_port=hb[1], **kw) |
|
741 |
self.xreq_address = ( |
|
|
742 |
self.sub_address = ( |
|
|
743 |
self.rep_address = ( |
|
|
744 |
self.hb_address = ( |
|
|
742 | self.xreq_address = (xreq[0], xrep) | |
|
743 | self.sub_address = (sub[0], pub) | |
|
744 | self.rep_address = (rep[0], req) | |
|
745 | self.hb_address = (hb[0], _hb) | |
|
745 | 746 | |
|
746 | 747 | def shutdown_kernel(self, restart=False): |
|
747 | 748 | """ Attempts to the stop the kernel process cleanly. If the kernel |
@@ -256,12 +256,15 b' class Kernel(HasTraits):' | |||
|
256 | 256 | # Kernel main and launch functions |
|
257 | 257 | #----------------------------------------------------------------------------- |
|
258 | 258 | |
|
259 | def launch_kernel(xrep_port=0, pub_port=0, req_port=0, hb_port=0, | |
|
259 | def launch_kernel(ip=None, xrep_port=0, pub_port=0, req_port=0, hb_port=0, | |
|
260 | 260 | independent=False): |
|
261 | 261 | """ Launches a localhost kernel, binding to the specified ports. |
|
262 | 262 | |
|
263 | 263 | Parameters |
|
264 | 264 | ---------- |
|
265 | ip : str, optional | |
|
266 | The ip address the kernel will bind to. | |
|
267 | ||
|
265 | 268 | xrep_port : int, optional |
|
266 | 269 | The port to use for XREP channel. |
|
267 | 270 | |
@@ -286,9 +289,15 b' def launch_kernel(xrep_port=0, pub_port=0, req_port=0, hb_port=0,' | |||
|
286 | 289 | (kernel_process, xrep_port, pub_port, req_port) |
|
287 | 290 | where kernel_process is a Popen object and the ports are integers. |
|
288 | 291 | """ |
|
292 | extra_arguments = [] | |
|
293 | if ip is not None: | |
|
294 | extra_arguments.append('--ip') | |
|
295 | if isinstance(ip, basestring): | |
|
296 | extra_arguments.append(ip) | |
|
297 | ||
|
289 | 298 | return base_launch_kernel('from IPython.zmq.pykernel import main; main()', |
|
290 | 299 | xrep_port, pub_port, req_port, hb_port, |
|
291 | independent) | |
|
300 | independent, extra_arguments=extra_arguments) | |
|
292 | 301 | |
|
293 | 302 | main = make_default_main(Kernel) |
|
294 | 303 |
General Comments 0
You need to be logged in to leave comments.
Login now