Standalone GUI application crashes with error and GUI python package closes immediately, does not stay open
2 views (last 30 days)
Show older comments
I created a standalone executable version of a GUI but it opens the GUI for an instance and crashes with "not enough input arguments" error, when run from a folder that does not contain the related GUI .m/.fig files, for e.g. while running directly from the desktop. The line of error is from the main GUI m-file shown below. The application runs as expected when run from the folder containing all the accompanying files.
gui_mainfcn(gui_State, varargin{:});
I was also trying to create a python package of the same GUI, but a similar experience with the GUI not staying open. Simply shows the GUI instantaneously but closes immediately with no particular error message.
0 Comments
Accepted Answer
Harsh
on 9 May 2018
It appears that the GUI was made using App Designer / Guide and relies on dependent files being present in the current directory. Note that a compiled application behaves more consistently if it avoids accessing or changing the current directory. A more reliable way is to base all file locations on a known root i.e. ctfroot for deployed applications. For example:
load('c:/Work/MATLAB/data.mat')% creates dependency on file structure
% Instead use
[pathstr,name]=fileparts(which('data.mat'));
load(name);
Detailed examples on managing path for deployed applications can be found here: https://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/
To further narrow down the exact point of error, on a Windows Machine before compiling, Under Additional runtime settings -> uncheck "Do not display the Windows Command Shell' and check 'Create log file'.
The Python error is also likely connected to the path issues of the standalone application.
More Answers (0)
See Also
Categories
Find more on Python Package Integration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!