簡體   English   中英

Python 子進程行 1420 FileNotFoundError: [WinError 2] 系統找不到指定的文件。 Jupyter-Matlab筆記本

[英]Python subprocess line 1420 FileNotFoundError: [WinError 2] The system cannot find the file specified. Jupyter-Matlab notebook

我想使用 Jupyter-matlab 筆記本。 我已經下載了 Anaconda 導航器並按照 web 中的步驟操作: http://jmlilly.net/jupyter-matlab不幸的是,當我嘗試打開 matlab 筆記本時出現 kernel 錯誤。 我一直在嘗試重新安裝 anaconda、jupyter、matlab-kernel、更改環境 python 版本(2.7、3.7、3.8、3.9)等,但它不起作用。 Matlab 版本:R2021b 和 R2022a(均已嘗試)。 來自 jupyter 的完整錯誤回溯:

追溯(最近一次通話):

File "C:\Users\lucas\anaconda3\lib\site-packages\tornado\web.py", line 1704, in _execute
    result = await result
  File "C:\Users\lucas\anaconda3\lib\asyncio\tasks.py", line 328, in __wakeup
    future.result()
  File "C:\Users\lucas\anaconda3\lib\site-packages\tornado\gen.py", line 769, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\Users\lucas\anaconda3\lib\site-packages\notebook\services\sessions\handlers.py", line 74, in post
    model = yield maybe_future(
  File "C:\Users\lucas\anaconda3\lib\site-packages\tornado\gen.py", line 762, in run
    value = future.result()
  File "C:\Users\lucas\anaconda3\lib\site-packages\tornado\gen.py", line 769, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\Users\lucas\anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 98, in create_session
    kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
  File "C:\Users\lucas\anaconda3\lib\site-packages\tornado\gen.py", line 762, in run
    value = future.result()
  File "C:\Users\lucas\anaconda3\lib\site-packages\tornado\gen.py", line 769, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\Users\lucas\anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 110, in start_kernel_for_session
    kernel_id = yield maybe_future(
  File "C:\Users\lucas\anaconda3\lib\site-packages\tornado\gen.py", line 762, in run
    value = future.result()
  File "C:\Users\lucas\anaconda3\lib\asyncio\futures.py", line 201, in result
    raise self._exception
  File "C:\Users\lucas\anaconda3\lib\asyncio\tasks.py", line 256, in __step
    result = coro.send(None)
  File "C:\Users\lucas\anaconda3\lib\site-packages\notebook\services\kernels\kernelmanager.py", line 176, in start_kernel
    kernel_id = await maybe_future(self.pinned_superclass.start_kernel(self, **kwargs))
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\utils.py", line 26, in wrapped
    raise e
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\utils.py", line 23, in wrapped
    return loop.run_until_complete(future)
  File "C:\Users\lucas\anaconda3\lib\site-packages\nest_asyncio.py", line 89, in run_until_complete
    return f.result()
  File "C:\Users\lucas\anaconda3\lib\asyncio\futures.py", line 201, in result
    raise self._exception
  File "C:\Users\lucas\anaconda3\lib\asyncio\tasks.py", line 256, in __step
    result = coro.send(None)
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\multikernelmanager.py", line 207, in _async_start_kernel
    starter = ensure_async(km.start_kernel(**kwargs))
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\utils.py", line 26, in wrapped
    raise e
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\utils.py", line 23, in wrapped
    return loop.run_until_complete(future)
  File "C:\Users\lucas\anaconda3\lib\site-packages\nest_asyncio.py", line 89, in run_until_complete
    return f.result()
  File "C:\Users\lucas\anaconda3\lib\asyncio\futures.py", line 201, in result
    raise self._exception
  File "C:\Users\lucas\anaconda3\lib\asyncio\tasks.py", line 256, in __step
    result = coro.send(None)
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\manager.py", line 79, in wrapper
    raise e
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\manager.py", line 71, in wrapper
    out = await method(self, *args, **kwargs)
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\manager.py", line 381, in _async_start_kernel
    await ensure_async(self._launch_kernel(kernel_cmd, **kw))
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\utils.py", line 26, in wrapped
    raise e
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\utils.py", line 23, in wrapped
    return loop.run_until_complete(future)
  File "C:\Users\lucas\anaconda3\lib\site-packages\nest_asyncio.py", line 89, in run_until_complete
    return f.result()
  File "C:\Users\lucas\anaconda3\lib\asyncio\futures.py", line 201, in result
    raise self._exception
  File "C:\Users\lucas\anaconda3\lib\asyncio\tasks.py", line 256, in __step
    result = coro.send(None)
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\manager.py", line 301, in _async_launch_kernel
    connection_info = await self.provisioner.launch_kernel(kernel_cmd, **kw)
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\provisioning\local_provisioner.py", line 204, in launch_kernel
    self.process = launch_kernel(cmd, **scrubbed_kwargs)
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\launcher.py", line 169, in launch_kernel
    raise ex
  File "C:\Users\lucas\anaconda3\lib\site-packages\jupyter_client\launcher.py", line 157, in launch_kernel
    proc = Popen(cmd, **kwargs)
  File "C:\Users\lucas\anaconda3\lib\subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\lucas\anaconda3\lib\subprocess.py", line 1420, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

我有同樣的問題。 這篇文章幫助我解決了這個問題。 出於某種原因,matlab kernel 配置文件指向錯誤的 python 位置。

解決方案

編輯文件%APPDATA%\jupyter\kernels\matlab\kernel.json使第一個參數指向正確的 python 可執行文件。 在我的情況下:

{"argv": ["/tmp/conda_envs/258853ccd52b78b326300497/bin/python", "-m", "matlab_kernel", ...

{"argv": ["C:\\Users\\YOURUSERNAME\\.conda\\envs\\ENVNAME\\python.exe", "-m", "matlab_kernel", ...

或者任何正確的 python 路徑到您的環境(更改 YOURUSERNAME 和 ENVNAME)。 在 windows 中,您可以使用where python找到它

額外信息

為了調試和查找kernel.json文件,我使用了

jupyter console --kernel matlab --debug

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM