필터 지우기
필터 지우기

How to compile a Standalone App which requires Python?

조회 수: 32 (최근 30일)
Giancarlo Meccariello
Giancarlo Meccariello 2021년 3월 23일
댓글: Mani 2024년 7월 19일 19:15
I am trying to compile a Standalone App with App designer.
The goal should be that other user can open the App without having Matlab installed.
The App workes on App Designer perfectly. Even if I compile the App and open it on my computer everything runs.
However, if I open the App on an other computer (without MATLAB, Python and CoolProp) the App opens but the calculation can't be done.
I guess the problem is the missing Python and/or CoolProp on the second Computer.
My code uses this function:
rho=py.CoolProp.CoolProp.PropsSI('D','T',273.15+ T_gc_out ,'P',p_h,KM)
Is there a way to compile the App including the required Python and CoolProp software to run my programm? I want to include these files, or codes in the app such that the other users don't have to download Python and CoolProp separately.
  댓글 수: 1
Mario Malic
Mario Malic 2021년 3월 23일
I think you could rather use websave to download Python directly to app root directory from this link, take a look at embeddable package, it's an archive file that you could unpack through MATLAB and use pyenv with input arguments to specify the location of the Python executable. Maybe you could do similarly for CoolProp, I don't know what is it.

댓글을 달려면 로그인하십시오.

답변 (3개)

Rashed Mohammed
Rashed Mohammed 2021년 3월 26일
Hi Giancarlo
As of R2021a, MATLAB doesn't support including external software when deploying an application automatically. However, as Mario suggested, you can try including the embeddable package of python. Note that it does not contain pip to install other packages. Hence, you also need to use the manual local installation instructions present in the CoolProp documentation.
Hope this helps
  댓글 수: 2
Jan
Jan 2023년 3월 6일
I want to do the same thing i.e. compile a Standalone App with App designer which uses some python functions.
Do I understand correctly that I need to ensure that the embeddable version of python is installed with the correct packages? Does that still work or does matlab does not support this anymore?
I haven't build the App but I'm considering App designer and I don't want to do the effort and afterwards realise it can't be done.
Giancarlo Meccariello
Giancarlo Meccariello 2023년 3월 6일
I do not know if this still works. I am not using Matlab anymore. If you anyways are going to use Python functions, then it is maybe easier to create the UI with Python (Tkinter?) and not using the Matlab app builder.

댓글을 달려면 로그인하십시오.


Giancarlo Meccariello
Giancarlo Meccariello 2021년 3월 29일
편집: Giancarlo Meccariello 2021년 3월 29일
I found a way to do so.
I added an "install" button in my app to run
pe = pyenv
app.PyversionEditField.Value = pe.Version %to print the version of python
[v,e] = pyversion; system([e,' -m pip install --user -U CoolProp']) %to install CoolProp
it does the trick
Do you know how to run this three lines of code without having a button? I would like it to run whenever opening the app
  댓글 수: 10
Tazura1998
Tazura1998 2022년 12월 4일
Hi all,
I have the same problem as Alexander Heinold. Can some one help or Alexander what to do. I reinstall everything but have the same problem again CPython. I think i need to change the path on the other computer in CMD or powershell but i don't know how?
Mario Malic
Mario Malic 2022년 12월 5일
Hi @Tazura1998, MATLAB has a setenv function which could be used in your case.

댓글을 달려면 로그인하십시오.


hsin-yu
hsin-yu 2024년 2월 16일
편집: hsin-yu 2024년 2월 16일
I also encountered the same problem. I compiled the thermal property calculation APP on a computer with MATLAB, and packaged the APP and sent it to a user who did not have MATLAB. The user had python installed, but the python environment status was detected as not loaded. Therefore it cannot be calculated.
Is this because the APP cannot execute the command window ?
If the APP has this limitation, how to solve it?
------------------<my code>---------------------------------------------------------------
% Prompt the user for the Python installation directory and provide examples
default_python_dir = 'C:\Users\user\AppData\Local\Programs\Python\Python310\python.exe';
python_dir_cell = inputdlg('Please enter the directory where Python executable is located:', 'Python Directory', [1, 100], {default_python_dir});
python_dir = char(python_dir_cell);
% If the user cancels input, return
if isempty(python_dir)
return;
end
try
% Try to execute pyenv
pe = pyenv("Version", python_dir);
% Display Python environment information
disp(pe);
% Convert Python environment information to a string
pe_str = evalc('disp(pe)');
% Display Python environment information string
msgbox(pe_str, 'Python Environment');
% Determine whether to import CoolProp based on whether Python status is loaded
if strcmp(pe.Status, 'Loaded')
% Try to install CoolProp
[v, e] = pyversion;
cmd = [e, ' -m pip install --user -U CoolProp'];
system(cmd);
pause(0.1);
% Display success message box
msgbox('Connected successfully.', 'Success');
else
% Show error message box
msgbox('Python is not loaded. Please make sure Python version supports MATLAB.', 'Error');
end
catch ME
% If an error occurs, display an error message box
errorMessage = ME.message;
msgbox(errorMessage, 'Error', 'error');
end

카테고리

Help CenterFile Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by