Win,M1Mac上安装jupyter的MATLAB支持插件的方法

news2024/11/26 17:38:30

tags: MATLAB Win Mac Tips

写在前面

11月的最后一天了, 总结一下支持MATLAB的一个jupyter的插件, 有了这个你就可以在jupyter notebook或者jupyter lab上面使用MATLAB语句了, 还是很不错的, 虽然我安装了好久…

下面来说一下我在我的电脑以及朋友的电脑(Win11)上面安装这个插件的具体方法. 环境配置如下:

MacOS 12.6 arm64 M1
MATLAB 2022a update 1
Python3.8 with ibrew(Intel brew by Rosetta2)

以及:

Windows11 amd64
MATLAB 2017a
Python3.5 with mini-conda

主要的安装方法我参考了MATLAB-proxy的GitHub主页1,(用的人真的少, 所以支持也不算很好, 比较慢), 哈佛的课程主页2, 以及MATLAB官方answer3, 最后给出我之前配置Intel brew的链接4,(下面简称ibrew).

Win11安装MATLAB-jupyter

这里还是走了一些弯路的, 因为Win11中已经安装的MATLAB版本是2017a, 应该是最后一个支持jupyter插件的MATLAB版本了, 我一开始用的是之前电脑里面就有的Python3.9, 但是后来发现MATLAB里面的Python engine只支持2.6, 2.7, 3.5这三个Python版本, 没办法, 那就用Conda来安装一个Python3.5吧…

先从官网下载最新版miniconda(至于Python版本并不重要, 直接用3.9即可), 然后一路确定安装即可.

需要注意的是你的电脑中如果已经存在Python或者不想让Conda成为默认的Python环境的话, 一定要取消勾选安装前的最后一步, 有红色字体提示.

安装完之后, 创建Python3.5虚拟环境, 直接在Conda的prompt(cmd/powershell都可以)中输入

conda create -n py35 python=3.5

如果你的MATLAB是很新的版本(2017a往后), 那么用Python3.8或许也可以, 这里没有测试过(因为MATLAB安装一次实在是太久了)

然后进入虚拟环境, 输入:

conda activate py35

切换到MATLAB的安装目录:(下面均在powershell中操作)

# 切换盘符
d:
# 切换到MATLAB目录
cd d:\matlab2017a\extern\engines\python
python setup.py install

安装完成之后就可以发现目录下多了一个dist文件夹, 这就是MATLAB提供的Python接口文件, 相当于一个Python的包, 只不过是在MATLAB的目录下.

这时候仍然在prompt下, 安装matlab_kernel:

pip install matlab_kernel
python -m matlab_kernel install

安装之后可以通过下面的命令查看一下引擎的支持情况:

jupyter kernelspec list

最后在虚拟环境中安装jupyter, (需要注意, python3.5不支持jupyter lab, 所以这里只能以notebook为例了)

pip install jupyter

安装完成之后, 如果需要使用jupyter lab, 那就还需要安装一下MATLAB-proxy插件(前提是你的MATLAB版本高于2017a)

这个插件的安装首先需要node.js环境(直接官网下载安装即可, 需要最后勾选添加到环境变量)

设置一下国内镜像:

npm config set registry=https://registry.npmmirror.com

下面安装这个插件:(参考GitHub主页1)

python -m pip install jupyter-matlab-proxy

然后:

python -m pip install jupyterlab

最后安装jupyterlab的扩展插件:

jupyter labextension install @jupyterlab/server-proxy

安完之后就可以用jupyter lab了.

使用MATLAB2017a可以用jupyter插件, 但是第一次启动可能很慢(可能是电脑的问题), 建议还是尽量用高一些版本的MATLAB.

使用方法的话, 大家应该都轻车熟路了:

# For Jupyter Notebook
jupyter notebook

# For Jupyter Lab
jupyter lab 

jupyter lab的效果见下1:(注意默认内核仍为Python, 需要替换成MATLAB, 不是MATLAB(connection))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LnjE2UZs-1669785769225)(https://github.com/mathworks/jupyter-matlab-proxy/raw/main/img/combined_launchers.png)]

当然, 使用jupyter lab的前提是你有MATLAB正版授权, 因为之后会需要提供注册账户. (这里建议使用pojie的朋友用notebook)

MacOS(M1)安装MATLAB-jupyter

这里主要参考了一个回答3, 专门解决Mac M1的MATLAB问题, 主要技术点就是通过Rosetta2转译的brew安装Python, 然后剩下的操作都在该Python下进行(如果不这样的话会提示架构不同, 原因是MATLAB现在还不是原生支持M1芯片的, 所以对应的Python插件需要使用Rosetta2安装转译版). 关于安装ibrew的方法, 可以看我之前的文章4.

首先安装Python:

ibrew install python@3.8

这里Python默认安装在/usr/local/bin下, 名为python3.8, (前提是添加了/usr/local/bin环境变量)

然后到MATLAB的安装目录:

cd /Applications/MATLAB_R2022a.app/extern/engines/python
python3.8 setup.py install

安装完成后, 再通过该Python安装一些包:

python3.8 -m pip install matlab_kernel
python3.8 -m matlab_kernel install
python3.8 -m pip install jupyter

最后:

python3.8 -m  jupyter notebook

效果如下:

bb

如果想使用jupyterlab, 仍然需要通过win的那套方法安装jupyterlab-proxy-Server, 下面给出命令:

python3.8 -m pip install jupyter-matlab-proxy
python3.8 -m pip install jupyterlab
jupyter labextension install @jupyterlab/server-proxy

效果:(登录后)

1

ref


  1. mathworks/jupyter-matlab-proxy: MATLAB Integration for Jupyter (github.com); ↩︎ ↩︎ ↩︎

  2. Install Jupyter-MATLAB — AM111 0.1 documentation; ↩︎

  3. Install Matlab engine for Python on MacBook M1 - MATLAB Answers - MATLAB Central (mathworks.cn); ↩︎ ↩︎

  4. m1 MBA配置Homebrew环境+国内源配置_zorchp的博客-CSDN博客_brew查看源; ↩︎ ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/48165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安科瑞安全用电监测,智慧用电装置,导轨式安装带无线通讯功能

安科瑞 王晶淼/司红霞 前言 随着电气化的迅猛发展和用电普及程度的日益提高,电已经成为人类生存和发展必不可少的能源之一。然而,由于种种原因,由电气引发的火灾和爆炸事故也直呈现上升趋势。电气设备的绝缘大量使用塑料、橡胶、绝缘漆、稀释剂等易燃物品,在电气设备运行中,由…

【Redis】数据结构---String

文章目录String(字符串)1.Redis 键(key)2.String(字符串)2.1常用命令2.2.String底层结构3.空间分配策略3.1空间预分配3.2惰性空间释放3.3为什么SDS的最大长度是512M?4.SDS面试题String(字符串) 1.Redis 键(key) keys *查看当前库所有key (匹配:keys *1)exists ke…

使用并行流的注意事项

遇到的问题&#xff1a;当时用并行流的时候期望结果7&#xff0c;但是偶尔会有结果不对的情况。。。 如下代码&#xff1a; public static void main(String[] args) {long startSystem.currentTimeMillis();List<String> alist new ArrayList<String>(Arrays.a…

【读书笔记】打开心智

打开心智 0&#xff0c;写在前面 什么是打开心智&#xff1f;我认为是通过更好的认识人类&#xff0c;认识自己&#xff0c;了解自己的本性&#xff0c;然后顺应本性指导和改变自己对事物的看法&#xff0c;约束自己的行为的过程。这也是一个认识心智到打开心智的过程。其实我…

代码随想录刷题|LeetCode 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

目录 121. 买卖股票的最佳时机 思路 暴力解法 贪心算法 动态规划 买卖股票的最佳时机 贪心算法 动态规划 122.买卖股票的最佳时机II 思路 分析递推公式 买卖股票的最佳时机II 贪心算法 动态规划 121. 买卖股票的最佳时机 题目链接&#xff1a;力扣 思路 暴力解法 暴力解答会超…

矩池云|GPU 分布式使用教程之 TensorFlow

GPU 分布式使用教程之 TensorFlow TensorFlow 提供了6种策略实现分布式计算&#xff0c;各个策略详情请参考官方文档。本文档使用 MirroredStrategy 实现单机多卡分布式&#xff0c;MultiWorkerMirroredStrategy 实现多机多卡分布式计算。 选择机器 单机多卡分布式&#xff1…

【MySQL进阶】多表连接的原理

【MySQL进阶】多表连接的原理 文章目录【MySQL进阶】多表连接的原理前言一&#xff1a;连接简介1&#xff1a;连接的本质2&#xff1a;连接过程简介二&#xff1a;连接的原理1&#xff1a;嵌套循环连接&#xff08;Nested-Loop Join&#xff09;2&#xff1a;使用索引加快连接速…

MySQL 8.*版本 修改root密码报错

1、mysql.sock报错 解决办法&#xff1a; 1、根据报错提示&#xff0c;是无法找到/tmp下面的mysql.sock。 2、全局搜索该文件&#xff1a;mysql.sock。 使用命令&#xff1a;find / -iname "mysql.sock" 为mysql.sock该文件创建软连接&#xff0c;命令如下&#x…

基于Java Web的传智播客crm企业管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Redis企业版数据库如何支持实时金融服务?

一、数字化转型正在颠覆银行业和金融业 随着金融科技初创公司和互联网巨头利用前沿技术重塑客户对金融服务的预期&#xff0c;金融服务行业正在经历大规模的数字化颠覆。 对于非接触式支付、移动银行、信贷决策、欺诈检测等服务&#xff0c;金融业客户要求“实时体验”&#…

使用tinode架设自己的私有聊天服务

需求 众所周知的原因&#xff0c;使用公用的即时聊天工具并不安全&#xff0c;比如某企鹅家的"wei xin"&#xff0c;我们需要一个自己的安全的聊天工具&#xff0c;比如我们需要传递账号以及密码等&#xff1b; 方案1&#xff1a; 使用网页工具将文本加密&#xf…

一、【redux】redux简介 mini版求和Demo

文章目录1、学习文档2、redux是什么3、什么情况下需要使用redux4、redux工作流程5、redux的三个核心概念5.1、action5.2、reducer5.3、store6、redux的核心API6.1、createStore()6.2、store对象6.3、applyMiddleware()6.4、combineReducers()7、求和Demo&#xff08;纯react版&…

拖死项目的不是团队,可能是失败的管理

项目中的活动&#xff0c;归根结底是由人来完成的&#xff0c;如何发挥项目成员的能力&#xff0c;对于项目的成败起着至关重要的作用。如何充分地发挥团队成员的能力&#xff0c;对项目经理也是一个挑战。 在团队管理者我们会遇见这些难题&#xff1a; 1、团队凝聚力不足&a…

配置CentOS

一、启动虚拟机 1、登录虚拟机 出现[rootlocalhost]#提示符&#xff0c;表明登录成功 2、查看IP 命令&#xff1a; ip addr 3、是否ping通外网 命令&#xff1a;ping www.baidu.com 二、配置静态IP地址 1、修改网卡配置文件 命令&#xff1a;vi /etc/sysconfig/net…

UBoot怎么跳转到Kernel:uboot与linux的交界

不知道你是否有这种感觉&#xff0c;就是学习了一段时间Uboot&#xff0c;学习了一段时间kernel&#xff0c;也知道Uboot是引导程序。但是总是连不起来。 我为什么来的这样的感受是因为&#xff0c;我最近在学习安全相关的东西。但是这个安全的东西应用在kernel里面进行&#…

路径规划算法之刚体变换

目录 1 一般概念 1.1 基元的变换 1.2 一个参数化的变换族 2 2D变换 2.1 translation 2.2 rotation 2.3 Combining translation and rotation 3 3D变换 3.1 Yaw, pitch, and roll rotations 3.2 Determining yaw, pitch, and roll from a rotation matrix 3.3 The ho…

模拟电路设计(35)---几种脉宽调制型开关电路

Forward单端正激变换器 在buck变换器开关与负载之间插入隔离变压器&#xff0c;这种隔离型buck变换器叫做Forward单端正激变换器。如下图所示&#xff1a; Forward单端正激变换器 简单分析可知&#xff0c;滤波电感L在开关管关断期间&#xff0c;通过续流二极管为负载提供电流…

Android JNI编程并生成so库

这里写自定义目录标题Android JNI编程并生成so库Android Studio配置下载配置NDK配置NDK路径编写native方法和c文件编写配置文件生成so库使用so库Android JNI编程并生成so库 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编…

Python——字符串

1、再Python中&#xff0c;使用单引号或者双引号括起来的&#xff0c;就是字符串 2、字符串也可以使用六个单引号或者六个双引号括起来。 3、在Python3中&#xff0c;字符串分为两种类型&#xff0c;第一种是str&#xff0c;是unicode字符串&#xff0c;第二种是bytes&#x…

springboot酒店客房管理系统设计

随着我国市场经济的快速发展以及人们生活水平的不断提高&#xff0c;酒店&#xff0c;宾馆之间的竞争也越来越激烈&#xff0c;为了在这场竞争中取得显著的优势&#xff0c;就必须在管理上加以改善。在某种意义上&#xff0c;酒店客房方面的信息化已经成为现代化酒店的重要标志…