У меня есть следующий класс, который пытается запустить экземпляр jupyter-lab с помощью runpy & concurrent.futures:
import logging
import runpy
import subprocess
import sys
from concurrent.futures import Future, ProcessPoolExecutor
import jupyterlab
argv = [
# "--no-browser"
"-h"
]
executor = ProcessPoolExecutor(2)
class Launcher(object):
def startJupyter(self):
_argv = argv
oldArgv = sys.argv
sys.argv = _argv
try:
runpy.run_module(jupyterlab.__name__, {}, "__main__")
except Exception as e:
logging.exception("Jupyter launching error")
finally:
sys.argv = oldArgv
def startJupyter_Asynch(self) -> Future:
ff: Future = executor.submit(self.startJupyter)
return ff
Когда я вызываю Launcher.startJupyter_Asynch (), я обнаружил, что jupyterlab был запущен без отображения сообщения справки, почему sys.argv в этом случае игнорируется? Как это исправить?
Кроме того, я считаю, что должен быть лучший, канонический способ запуска модуля jupyterlab в другом процессе с использованием идентичных интерпретатора и среды python, но я не могу найти ни одного. Может ли кто-нибудь указать мне правильное направление?