生成一个Python打包并构建Python应用程序
支持平台:窗户®, Linux®,Mac
这个例子展示了如何创建一个Python®包从MATLAB®函数,并将生成的包集成到Python应用程序中。
先决条件
验证您已经安装了兼容的Python版本MATLAB编译器SDK™.详情请参见MATLAB支持的其他语言接口.
最终用户必须安装MATLAB运行时运行应用程序。出于测试的目的,您可以使用MATLAB的安装来代替MATLAB运行时.详情请参见安装和配置MATLAB运行时.
中创建函数MATLAB
在MATLAB中,检查您想打包的MATLAB代码。对于本例,创建一个名为makesqr.m
包含以下代码:
函数Y = makesqr(x) Y = magic(x);
在MATLAB命令提示符下,输入makesqr (5)
.
输出是一个5 × 5矩阵。
17 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
创建Python应用程序使用库编译程序
方法将函数编译到Python包中库的编译器或者,如果您想使用编程方法从MATLAB命令窗口创建一个Python包,请参见使用compiler.build.pythonPackage创建Python包.
在MATLAB应用程序标签,在最右边的应用程序部分,单击箭头。在应用程序部署,点击库的编译器.
或者,您可以打开库的编译器app从MATLAB命令提示符。
libraryCompiler
在类型部分,单击Python包.
在库的编译器app项目窗口,指定要部署的MATLAB应用程序的文件。
在导出功能部分,单击.
在添加文件窗口,浏览到示例文件夹,并选择要打包的函数。点击开放.
该函数被添加到导出的函数文件列表中。重复此步骤,将多个文件打包到同一个应用程序中。
对于本例,选择
makesqr.m
您之前编写的文件。在包装选项部分时,决定是否包含MATLAB运行时安装程序在生成的应用程序中选择其中一个选项:
从web下载运行时-生成一个安装程序,用于下载MATLAB运行时并将其与已部署的MATLAB应用程序一起安装。您可以指定安装程序的文件名。
包中包含的运行时—生成包含MATLAB运行时安装程序。您可以指定安装程序的文件名。
请注意
第一次选择此选项时,系统会提示您下载MATLAB运行时安装程序。
指定包设置
接下来,定义Python包的名称。
为您的包选择一个名称。的库名称字段将自动填充
makesqr
作为包的名称。重命名为MagicSquarePkg
.有关Python包的命名要求的更多信息,请参见安装和导入MATLAB编译器SDK Python包.
创建示例驱动程序文件
您可以将MATLAB文件添加到项目中以生成示例Python驱动程序文件。尽管Python驱动程序文件不是创建包所必需的,但是您可以使用它们来实现Python应用程序,如安装并运行MATLAB生成的Python应用程序.
在样品部分中,选择创建新样本,单击makesqr.m
.打开一个MATLAB文件供您编辑。
演示函数y = makesqr(x)执行的示例脚本X = 0;%在这里初始化xY = makesqr(x);
改变X = 0
来X = 5
,保存文件,并返回库的编译器应用程序。
有关更多信息和限制,请参见驱动程序文件创建示例.
自定义应用程序及其外观
在库的编译器应用程序,您可以自定义安装程序,自定义您的应用程序,并添加关于应用程序的更多信息。
图书馆信息—已部署的应用信息。您还可以通过更改应用程序图标和启动画面来定制应用程序的外观。生成的安装程序使用此信息填充已安装的应用程序元数据。看到自定义安装程序.
其他安装程序选项-生成的安装程序的默认安装路径和自定义logo选择。看到更换安装路径.
运行库所需的文件-生成的应用程序运行所需的附加文件。这些文件包含在生成的应用程序安装程序中。看到在编译器项目中管理所需文件.
为最终用户安装的文件-与应用程序一起安装的文件。
打包应用程序
当您完成选择打包选项时,保存您的库的编译器投影并生成打包的应用程序。
点击包.
在“保存项目”对话框中,指定保存项目的位置。
在包对话框,验证一下当进程完成时打开输出文件夹被选中。
打包过程完成后,检查目标文件夹中生成的输出。
生成三个文件夹:
for_redistribution
,for_redistribution_files_only
,for_testing
.有关在这些文件夹中生成的文件的更多信息,请参见打包MATLAB函数后生成的文件.
日志文件
PackagingLog.html
包含打包结果。
创建Python包使用compiler.build.pythonPackage
作为一种替代库的编译器app中,您可以使用编程方法创建Python包。方法创建了一个包库的编译器,请参阅安装并运行MATLAB生成的Python应用程序.
将以下代码保存在一个名为
makesqrSample1.m
:X = 5;Y = makesqr(x);
方法构建Python包
compiler.build.pythonPackage
功能和makesqr.m
您之前编写的文件。使用名称-值参数指定包名并添加示例文件。buildResults = compiler.build.pythonPackage(“makesqr.m”,...“PackageName”,“MagicSquarePkg”,...“SampleGenerationFiles”,“makesqrSample1.m”,...“详细”,“上”);
控件中指定其他选项
compiler.build
使用名称-值参数命令。详情请参见compiler.build.pythonPackage
.的
compiler.build.Results
对象buildResults
包含有关生成类型、生成文件、包含的支持包和生成选项的信息。该函数在名为
MagicSquarePkgpythonPackage
在您当前的工作目录中:样品\ makesqrSample1.py
- Python应用程序示例文件。GettingStarted.html
-包含集成包信息的HTML文件。includedSupportPackages.txt
—列出软件包中所有支持文件的文本文件。mccExcludedFiles.log
-包含应用程序中未包含的任何工具箱功能列表的日志文件。有关不支持的函数的信息,请参见MATLAB编译器的限制.固定
—封装和接口信息的文本文件。requiredMCR2022世界杯八强谁会赢?Products.txt
—包含所需产品的产品id的文本文件2022世界杯八强谁会赢?MATLAB运行时运行应用程序。setup . py
—安装包的Python文件。unresolvedSymbols.txt
-包含未解析符号信息的文本文件。
请注意
生成的包不包含MATLAB运行时或者安装程序。方法创建安装程序
buildResults
对象,看到compiler.package.installer
.
安装并运行MATLAB生成的Python应用程序
创建Python包后,可以从Python应用程序调用它。本示例使用在打包过程中生成的示例Python代码。您可以使用此示例Python应用程序代码作为编写自己的应用程序的指南。
复制并粘贴生成的Python文件
makesqrSample1.py
从样品
文件夹中包含setup . py
文件。的程序列表
makesqrSample1.py
如下所示。#!使用MATLAB编译器SDK创建的MagicSquarePkg模块的示例脚本。更多信息请参考MATLAB编译器SDK文档。“”from __future__ import print_function import MagicSquarePkg import matlab my_MagicSquarePkg = MagicSquarePkg.initialize() xIn = matlab.double([5.0], size=(1,1)) yOut = my_MagicSquarePkg.makesqr(xIn) print(yOut, sep='\n') my_MagicSquarePkg.terminate()
在系统命令提示符下,导航到包含
makesqrSample1.py
而且setup . py
.方法安装应用程序
python
命令。Python setup.py install
要安装到默认位置以外的位置,请参考Python官方文档中的“安装Python模块”。
在系统命令提示符下运行应用程序。
python makesqrSample1.py
如果在打包步骤中使用样例MATLAB代码,该应用程序将返回与样例代码相同的输出。
[[17.0, 24.0, 1.0, 8.0, 15.0), (23.0, 5.0, 7.0, 14.0, 16.0), (4.0, 6.0, 13.0, 20.0, 22.0), (10.0, 12.0, 19.0, 21.0, 3.0), (11.0, 18.0, 25.0, 2.0, 9.0)]
请注意
在macOS,你必须使用
mwpython
脚本而不是脚本python
.例如,mwpython makesqrSample1.py
.的
mwpython
脚本位于
文件夹,matlabroot
/ binmatlabroot
你的位置是MATLAB还是MATLAB运行时安装。
另请参阅
mwpython
|libraryCompiler
|compiler.build.pythonPackage
|世纪挑战集团
|deploytool