Source code for wolframclient.cli.commands.start_externalevaluate

from __future__ import absolute_import, print_function, unicode_literals

import os
import sys

from wolframclient.cli.utils import SimpleCommand
from wolframclient.utils.api import externalevaluate as ev
from wolframclient.utils.api import zmq


[docs] class Command(SimpleCommand): dependencies = ()
[docs] def add_arguments(self, parser): parser.add_argument("--port", dest="port", default=None) parser.add_argument("--installpath", dest="installpath", default=None) parser.add_argument("--kernelversion", dest="kernelversion", default=None)
[docs] def handle(self, port=None, installpath=None, kernelversion=None, **opts): for key, value in ( ("WOLFRAM_INSTALLATION_DIRECTORY", installpath), ("WOLFRAM_KERNEL_VERSION", kernelversion), ): if value: os.environ[key] = value try: zmq.Context except ImportError as e: print( 'Error importing zmq: {}. Please install zmq by running:\nExternalEvaluate[{{"Shell", "Target" :> $SystemShell}}, "{}" -> {{"-m", "pip", "install", "pyzmq", "--user", "--no-input"}}]'.format( e, sys.executable ), file=sys.stderr, ) sys.stderr.flush() sys.exit(1) ev.start_zmq_loop(port=port)