|
7 | 7 | from subprocess import PIPE, Popen
|
8 | 8 | from threading import Event, RLock, Thread
|
9 | 9 |
|
10 |
| -from wolframclient.utils.environment import find_default_kernel_path |
11 | 10 | from wolframclient.evaluation.kernel.zmqsocket import (
|
12 | 11 | Socket,
|
13 | 12 | SocketAborted,
|
|
17 | 16 | from wolframclient.exception import WolframKernelException
|
18 | 17 | from wolframclient.utils import six
|
19 | 18 | from wolframclient.utils.api import json, os, time, zmq
|
| 19 | +from wolframclient.utils.environment import find_default_kernel_path |
| 20 | +from wolframclient.utils.functional import iterate |
20 | 21 |
|
21 | 22 | if six.WINDOWS:
|
22 | 23 | from subprocess import STARTF_USESHOWWINDOW, STARTUPINFO
|
@@ -130,12 +131,13 @@ def __init__(
|
130 | 131 | "Cannot locate a kernel automatically. Please provide an explicit kernel path."
|
131 | 132 | )
|
132 | 133 |
|
133 |
| - if initfile is None: |
134 |
| - self.initfile = os.path_join(os.dirname(__file__), "initkernel.m") |
135 |
| - else: |
136 |
| - self.initfile = initfile |
137 |
| - if not os.isfile(self.initfile): |
138 |
| - raise FileNotFoundError("Kernel initialization file %s not found." % self.initfile) |
| 134 | + self.initfile = tuple( |
| 135 | + iterate(initfile or (), os.path_join(os.dirname(__file__), "initkernel.m")) |
| 136 | + ) |
| 137 | + for path in self.initfile: |
| 138 | + if not os.isfile(path): |
| 139 | + raise FileNotFoundError("Kernel initialization file %s not found." % path) |
| 140 | + |
139 | 141 | if logger.isEnabledFor(logging.DEBUG):
|
140 | 142 | logger.debug(
|
141 | 143 | "Initializing kernel %s using script: %s" % (self.kernel, self.initfile)
|
@@ -384,7 +386,12 @@ def _kernel_start(self):
|
384 | 386 | "Kernel receives evaluated expressions from socket: %s", self.kernel_socket_in
|
385 | 387 | )
|
386 | 388 | # start the kernel process
|
387 |
| - cmd = [self.kernel, "-noprompt", "-initfile", self.initfile] |
| 389 | + cmd = [self.kernel, "-noprompt"] |
| 390 | + |
| 391 | + for path in self.initfile: |
| 392 | + cmd.append('-initfile') |
| 393 | + cmd.append(path) |
| 394 | + |
388 | 395 | if self.loglevel != logging.NOTSET:
|
389 | 396 | self.kernel_logger = KernelLogger(
|
390 | 397 | name="wolfram-kernel-logger-%i" % self.id, level=self.loglevel
|
|
0 commit comments