用 docker 使用 MaToPy¶
MaToPy 也有 docker 镜像了,目前的镜像和tag是:
crpi-079rewyo0p66lj91.cn-beijing.personal.cr.aliyuncs.com/terawin/matopy:v2024-12-16
可以用 docker pull 下载该镜像,或者基于该镜像制作 python 开发环境,以便拥有 MaToPy 依赖包。
准备 docker 环境¶
如果您使用的是 Windows 系统,请参考 文章1 下载并安装好 Windows 的 docker 环境。
如果您使用的是 Linux 系统,请参考 文章2 安装 docker 环境。
如果您使用的是阿里云,那就参考 文章3,可以快速地安装好 docker 环境。
拉取镜像¶
用下面的命令拉取镜像到本地,替换其中的 [镜像版本号]
docker pull crpi-079rewyo0p66lj91.cn-beijing.personal.cr.aliyuncs.com/terawin/matopy:[镜像版本号]
例如,当前的镜像版本是 v2024-12-16 那么就是:
docker pull crpi-079rewyo0p66lj91.cn-beijing.personal.cr.aliyuncs.com/terawin/matopy:v2024-12-16
查看拉取到本地的 MaToPy 镜像,获取到镜像ID,后面使用:
docker images
启动容器¶
请用 windows 的 PowerShell 打开一个命令行窗口,然后执行各种 docker 命令。
假设你的 matlab 代码在当前工作目录 ./matlab
下,那么可以用以下命令挂载这个目录到 matopy 容器,
启动 MaToPy 容器,并且进入 bash 命令行。
docker run --name matopy `
--mount type=bind,src=$pwd/matlab,dst=/app/matlab `
-w /app/matlab `
-i `
-t [镜像ID或镜像名] `
bash
注意:本地目录一定要用*绝对地址*,例如 matlab 目录是 D:\MyCode\matlab
,那么命令行就是:
docker run --name matopy `
--mount type=bind,src=D:\MyCode\matlab,dst=/app/matlab `
-w /app/matlab `
-i `
-t [镜像ID或镜像名] `
bash
一个具体的例子:
docker run --name matopy --mount type=bind,src=D:\MyCode\matlab,dst=/app/matlab -w /app/matlab -i -t b66281dea520 bash
其中 -v 表示将本地的 $pwd/matlab
目录挂载为容器的 /app/matlab
目录;
-w 表示容器的工作目录切换到此处,即 /app/matlab
。
-i 表示进入交互命令行模式。
-t 指定容器的镜像,就是前面获得的 MaToPy 镜像ID,当然也可以使用镜像名加TAG的模式。 这里是因为镜像名太长了,所以用镜像ID,如果你给 MaToPy 的镜像创建一个 TAG 别名,那也是可以的。
执行 MaToPy 编译命令¶
进入容器的 bash 交互命令行后,就可以将 matlab 代码拷贝到 ./matlab 目录下,并执行编译命令,得到 python 代码。
确保进入了 /app/matlab
目录,然后执行下面的命令。
matopy -g ./*.m -e gbk -d ./ -N -v
如果是第一次执行,需要按提示输入 注册码,如果执行成功,就会像下面这样。
运行编译生成的 python 代码¶
要运行编译得到的 python 代码,需要在 python 环境中安装 matopy-lib,具体方法请参考 README 中的 用 wheel 文件安装
。
也可以基于 MaToPy 的 docker 镜像,创建新的 docker 镜像,进行开发。