PyInstaller编译pyradiomics脚本为EXE后在MATLAB调用报错求助
解决PyInstaller打包pyradiomics后MATLAB调用报错的问题
问题根源
PyInstaller默认不会自动打包pyradiomics依赖的schema配置文件(如paramSchema.yaml),当exe在MATLAB中运行时,会临时解压到系统临时目录,但缺少这些必需的配置文件,导致路径找不到报错。
解决方案
方法1:修改PyInstaller命令,手动打包schema文件
找到你的Python环境中radiomics/schemas文件夹的实际路径(比如C:\Python39\Lib\site-packages\radiomics\schemas),然后用--add-data参数强制打包该文件夹:
pyinstaller -F -w --add-data "实际路径/radiomics/schemas;radiomics/schemas" FeatureExtraction.py
- Windows系统用分号
;分隔源路径和目标路径,Linux/macOS用冒号:。
方法2:修改脚本指定schema绝对路径
在FeatureExtraction.py中手动指定paramSchema.yaml的本地绝对路径,绕过临时目录的依赖:
import os from radiomics import featureextractor # 替换为你本地paramSchema.yaml的真实路径 schema_path = r"C:\Python39\Lib\site-packages\radiomics\schemas\paramSchema.yaml" extractor = featureextractor.RadiomicsFeatureExtractor(schema_path)
修改后重新用PyInstaller打包即可。
方法3:使用pyradiomics官方打包配置
pyradiomics官方提供了适配PyInstaller的.spec配置文件,直接用该文件打包:
- 获取官方的
FeatureExtraction.spec文件 - 执行打包命令:
pyinstaller FeatureExtraction.spec
该配置已预设好所有需要打包的依赖文件,能避免缺失schema的问题。
验证步骤
打包完成后先双击exe确认能正常运行,再在MATLAB中用system('FeatureExtraction.exe 你的参数')调用,检查报错是否消失。
内容的提问来源于stack exchange,提问作者JunjiwWen
相关产品推荐
相关产品推荐

