从应用程序设计器创建独立的应用程序,其中包括Python文件。

27次观看(过去30天)
Ictinaetus
Ictinaetus 2019年12月9日
评论道: 阿图罗皮诺2021年8月12日
大家好!
我一直在解决这个问题有一段时间了,现在不知道从这里去哪里。
我用MATLAB (2019a)在App Designer中编写了一个应用程序。应用程序本身使用Python将数据返回给MATLAB,在这种特殊情况下仅为整数列表。在App Designer中,我可以完美地运行我的应用程序。Python文件没有问题,使用:
py.importlib.import_module (' mymod ”)
在我的模块上不产生错误。在我的机器上安装了一个标准的64位CPython 3.7.5,并调用
pyversion
确认Python已被找到并加载。
在我的App Designer应用程序中,在StartupFcn中,我已经更新了Python搜索路径
Pwd_path = pwd;
Mod_name = 'py_dpd_add.py';是的,这就是我所说的我的模块
Full_path = [pwd_path, filesep, mod_name];
Python_path = py.sys.path;
count(python_path, full_path) == 0
Insert (python_path, int32(0), full_path);
结束
当我使用ApplicationCompiler打包我的独立应用程序时,我将Python文件添加到“为最终用户安装的文件”下。
我在我的机器上安装了独立的MATLAB Runtime 9.6,这也是MATLAB中的运行时版本。
然而,当我尝试在同一台机器上运行独立应用程序时,我收到的错误是
未定义变量“py”或类“py.py_dpd_add.gen_dist”
请记住,这个应用程序是完美的工作时,运行在应用程序设计器本身。
我唯一的想法是Python没有在应用程序中加载,但我尝试了添加行
pyversion (3.7);这在MATLAB内部工作得很好
py.int (1);%检查是否抛出错误,但没有抛出错误
到添加Python路径的脚本中,并且这些行似乎没有导致任何问题,理论上应该意味着Python已加载。
如果有人经历过类似的困惑,或者知道如何解决这个问题,我会非常感激。
谢谢你的时间。
编辑:不管怎样,完整的回溯如下:
未定义变量“py”或类“py.py_dpd_add.gen_dist”。
dpd_roll中的错误(第42行)
Present_DPD/ addtoplotbuttonpressed错误(第412行)
appdesigner.internal.service.AppManagementService/tryCallback错误(第333行)
在matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback, require7data,event)中的错误
使用matlab.ui.control.internal.controller.ComponentController/executeUserCallback错误(第335行)
计算按钮PrivateButtonPushedFcn时出错。
6个评论
阿图罗皮诺
阿图罗皮诺 2021年8月12日
我也有同样的问题。在应用程序启动时运行pyenv()是否遇到任何问题?
我特别感兴趣的是在我的应用程序的%APPDATA%目录中安装一个嵌入式python环境,并使用该发行版调用所有python模块,因为我可以控制在客户端系统上安装哪些包/版本。但是,我遇到了一个问题,这可以通过Matlab命令窗口和.m文件完美地工作。但是当我试图通过应用程序设计器在启动应用程序时将pyenv()设置到所需的位置时,我得到一个python环境已经加载的错误,尽管重新启动matlab后我还没有执行pyenv()命令。

登录评论。

答案(0)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!