Matlab使用pyrunfile运行Python文件时报qhull DLL加载错误如何解决
Matlab调用Python脚本qhull导入错误解决方案
错误根因
该错误是因为Matlab调用conda虚拟环境的Python时,没有继承虚拟环境的动态库搜索路径,scipy依赖的qhull相关DLL存放在conda虚拟环境的Library/bin目录下,Matlab默认无法搜索到该路径,因此触发DLL加载失败。
可行解决步骤
- 第一步:先在conda终端激活对应虚拟环境,重装scipy确保安装完整
执行命令:conda activate Deep conda install --force-reinstall scipy - 第二步:Matlab中调用Python前,先手动将虚拟环境相关路径添加到系统搜索路径
替换代码中的路径为你自己的conda虚拟环境实际路径后执行:% 提前加载conda虚拟环境的动态库搜索路径 setenv('PATH', ['C:\Users\XXX\.conda\envs\Deep\Library\bin;', ... 'C:\Users\XXX\.conda\envs\Deep\Scripts;', ... 'C:\Users\XXX\.conda\envs\Deep;', ... getenv('PATH')]); % 再执行原有的Python调用逻辑 pyenv('version', 'C:\Users\XXX\.conda\envs\Deep\python.exe') pyrunfile('one_component_model.py') - 第三步:确认版本兼容性
检查当前Matlab版本支持的Python版本范围,避免使用超出支持范围的Python版本;同时确保Matlab和Python的系统架构一致,均为64位版本。 - 第四步:确认目录权限
确保Matlab进程对conda虚拟环境目录有可读权限,不要将conda虚拟环境安装在需要管理员权限的系统目录下。
内容的提问来源于stack exchange,提问作者Tobias Averbeck
相关产品推荐
相关产品推荐

