主要内容

生成一个Python打包并构建Python应用程序

支持平台:窗户®, Linux®Mac

这个例子展示了如何创建一个Python®包从MATLAB®函数,并将生成的包集成到Python应用程序中。

先决条件

中创建函数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包

  1. MATLAB应用程序标签,在最右边的应用程序部分,单击箭头。在应用程序部署,点击库的编译器

    或者,您可以打开库的编译器app从MATLAB命令提示符。

    libraryCompiler

    编译器选项卡,打开库编译器应用程序

  2. 类型部分,单击Python包

    库的编译器app项目窗口,指定要部署的MATLAB应用程序的文件。

    1. 导出功能部分,单击向项目添加导出的功能

    2. 添加文件窗口,浏览到示例文件夹,并选择要打包的函数。点击开放

    该函数被添加到导出的函数文件列表中。重复此步骤,将多个文件打包到同一个应用程序中。

    对于本例,选择makesqr.m您之前编写的文件。

  3. 包装选项部分时,决定是否包含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 = 0X = 5,保存文件,并返回库的编译器应用程序。

有关更多信息和限制,请参见驱动程序文件创建示例

自定义应用程序及其外观

库的编译器应用程序,您可以自定义安装程序,自定义您的应用程序,并添加关于应用程序的更多信息。

  • 图书馆信息—已部署的应用信息。您还可以通过更改应用程序图标和启动画面来定制应用程序的外观。生成的安装程序使用此信息填充已安装的应用程序元数据。看到自定义安装程序

  • 其他安装程序选项-生成的安装程序的默认安装路径和自定义logo选择。看到更换安装路径

  • 运行库所需的文件-生成的应用程序运行所需的附加文件。这些文件包含在生成的应用程序安装程序中。看到在编译器项目中管理所需文件

  • 为最终用户安装的文件-与应用程序一起安装的文件。

    看到指定要与应用程序一起安装的文件

用于自定义应用程序的Library Compiler应用程序中的字段

打包应用程序

当您完成选择打包选项时,保存您的库的编译器投影并生成打包的应用程序。

  1. 点击

    在“保存项目”对话框中,指定保存项目的位置。

  2. 对话框,验证一下当进程完成时打开输出文件夹被选中。

    打包过程完成后,检查目标文件夹中生成的输出。

    • 生成三个文件夹:for_redistributionfor_redistribution_files_only,for_testing

      有关在这些文件夹中生成的文件的更多信息,请参见打包MATLAB函数后生成的文件

    • 日志文件PackagingLog.html包含打包结果。

创建Python包使用compiler.build.pythonPackage

作为一种替代库的编译器app中,您可以使用编程方法创建Python包。方法创建了一个包库的编译器,请参阅安装并运行MATLAB生成的Python应用程序

  1. 将以下代码保存在一个名为makesqrSample1.m

    X = 5;Y = makesqr(x);

  2. 方法构建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包含有关生成类型、生成文件、包含的支持包和生成选项的信息。

  3. 该函数在名为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应用程序代码作为编写自己的应用程序的指南。

  1. 复制并粘贴生成的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()

  2. 在系统命令提示符下,导航到包含makesqrSample1.py而且setup . py

  3. 方法安装应用程序python命令。

    Python setup.py install

    要安装到默认位置以外的位置,请参考Python官方文档中的“安装Python模块”。

  4. 在系统命令提示符下运行应用程序。

    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/ bin文件夹,matlabroot你的位置是MATLAB还是MATLAB运行时安装。

另请参阅

||||

相关的话题

Baidu
map