python - 如何将 matlab 合并到 jupyter notebook 中?
问题描述
我正在尝试集成 MATLAB 和 jupyter notebook,以便我可以在基于 Web 的笔记本和实验室中使用 MATLAB。我正在运行 MATLAB R2020a、python 3.6(来自 conda 4.8.2);计算机的操作系统是 Ubuntu 18.04。我收到一条错误消息,提示未安装 MATLAB 引擎,但据我所知,它已安装。
我已经执行了以下步骤: 1. 我用 python 3.6 创建了一个 conda 环境conda create matlab-conda python=3.6
。2. 从那里,我使用 pip 安装 matlab_kernel,输入pip install matlab-kernel
. 3. 如果我通过键入并查看列表来检查内核是否已安装jupyter kernelspec list
,它会显示: 可用内核:
ir /home/computerone/.local/share/jupyter/kernels/ir
matlab
/home/computerone/miniconda3/envs/matlab-conda/share/jupyter/kernels/matlabpython3
/home/computerone/miniconda3/envs/matlab-conda/share/jupyter/kernels/python3
- 为了配置 MATLAB,我找到了 extern/engines/python 文件夹,并从 conda env 中运行了 setup:
python setup.py install
。这成功运行了。
当我打开 juyter notebook 或 lab 时,MATLAB notebook 选项在那里,我可以选择它,显示一个 notebook;但是,当我打开 MATLABnotebook 并键入命令(例如,2+5)时,会引发以下错误:
[MetaKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 541, in execute_request
user_expressions, allow_stdin,
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/metakernel/_metakernel.py", line 395, in do_execute
retval = self.do_execute_direct(code)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 99, in do_execute_direct
retval = self._execute_async(code)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 257, in _execute_async
future = self._matlab.eval(code, **kwargs)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 81, in _matlab
""")
ImportError:
Matlab engine not installed:
See https://www.mathworks.com/help/matlab/matlab-engine-for-python.htm
解决方案
推荐阅读
- algorithm - 不平衡树的所有路径和问题的最坏情况空间复杂度是多少?
- firebase - 带有 ReactNative Redux 的 Firebase Auth 无法使用 Expo
- django - 更改页面后 Ajax 请求丢失
- apache-spark - 与单独运行相比,具有多个聚合的 pyspark 旋转数据更长/冻结
- javascript - 想要从 Vuejs 中的 AXIOS GET api 调用重定向到 URL
- sql - PySpark 数据框的每日预测
- highcharts - 千位和小数逗号 HighCharts
- github - Cloudposse CodeFresh——拉取请求管道规范——终止而不将状态设置为“失败”
- mysql - 根据条件将两个 MySql 查询组合成一个查询
- nginx - Nginx:查找特定文件夹的位置