运行可执行程序.exe时,出现错误:SystemError: Cannot find CTF archive 'your_file.ctf'.
需要解决两个问题:
第一:在使用matlab library compiler 打包工具时,选择好你需要打包的matlab函数,再勾选Runtime included in package,点击Package进行打包
点击Package进行打包弹出Valid MATLAB Runtime installer not found时候选择Specify Location,输入路径如我的是‘C:\Users\Admin\AppData\Local\Temp\Admin\MCRInstaller9.14\MATLAB_Runtime_R2023a_win64.zip’
如果出现错误,请注意:要保证你输入的路径里的文件有效
点击下方网址链接到浏览器下载与你的matlab版本对应的版本matlab runtime
MATLAB Runtime - MATLAB Compiler - MATLAB (mathworks.cn)
我的matlab版本是R2023a(9.14),根据系统选择对应的Runtimely,下载好压缩包MATLAB_Runtime_R2023a_win64.zip
将上面下载后的压缩包复制到‘C:\Users\Admin\AppData\Local\Temp\Admin\MCRInstaller9.14\’目录下;替换文件。此时输入的路径
‘C:\Users\Admin\AppData\Local\Temp\Admin\MCRInstaller9.14\MATLAB_Runtime_R2023a_win64.zip’才是有效的,继续完成打包。然后制作可执行文件.exe,
第二步:如果在完成第一步的基础上,执行可执行文件.exe还是出现SystemError: Cannot find CTF archive 'your_file.ctf'. 需要找到生成的your_file.spec文件,在your_file.spec文件datas中添加MCR所依赖的CTF文件(注:添加python转义符r,以及每个CTF文件目录后都添加逗号,以防出错)
重新将修改好的.spec文件进行打包生成exe文件
-
cmd打开命令行窗口
-
导航到 .spec 文件所在的目录。
-
运行 PyInstaller 命令pyinstaller your_file.spec来创建新的 .exe 文件(在dist目录下)
-
运行生成的 .exe 文件以确保它能够正常工作,并且所有依赖项都已正确包含。
不对的地方还请多多指正,欢迎留言!