You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS系统中搭配使用Pillow与MATLAB Runtime?

解决macOS下MATLAB Runtime与Pillow冲突的报错问题

看起来你在配置MATLAB Runtime后,运行Pillow相关代码时碰了壁——这大概率是因为你设置的DYLD_LIBRARY_PATH环境变量干扰了Python加载Pillow依赖的系统原生库。下面是具体的问题分析和解决办法:

问题根源

当你把DYLD_LIBRARY_PATH指向MATLAB Runtime的库目录时,系统会优先加载MATLAB提供的库文件,但这些库和Pillow需要的libjpeg、libpng等系统库版本可能不兼容,最终导致导入PIL模块时触发加载错误。

实用解决方案

方案1:临时设置环境变量,仅给MATLAB程序用

别全局设置DYLD_LIBRARY_PATH,只在需要运行MATLAB相关程序时临时配置:

  • 打开终端,先执行设置命令,再启动你的MATLAB Runtime程序:
    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/MATLAB_R2017b.app/runtime/maci64:/Applications/MATLAB_R2017b.app/sys/os/maci64:/Applications/MATLAB_R2017b.app/bin/maci64
    # 这里替换成你要运行的MATLAB Runtime程序路径
    
  • 运行Python/Pillow代码时,直接用未设置该环境变量的终端,彻底避免冲突。

方案2:用虚拟环境隔离Pillow的运行环境

创建独立的Python虚拟环境,让Pillow加载原生系统库,不受MATLAB库影响:

  1. 创建并激活虚拟环境:
    python3 -m venv pillow-env
    source pillow-env/bin/activate
    
  2. 在虚拟环境里重新安装Pillow:
    pip install Pillow
    
  3. 再运行你的代码:
    from PIL import Image, ImageTk
    print('Hello World')
    

方案3:给MATLAB程序单独写启动脚本(进阶)

如果必须同时跑MATLAB Runtime和Pillow,可以给MATLA程序写个专属启动脚本,让它只在自身进程里加载MATLAB库:

  1. 新建一个脚本文件(比如run_matlab_app.sh):
    #!/bin/bash
    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/MATLAB_R2017b.app/runtime/maci64:/Applications/MATLAB_R2017b.app/sys/os/maci64:/Applications/MATLAB_R2017b.app/bin/maci64
    # 替换成你的MATLAB Runtime应用路径
    /path/to/your/matlab/application
    
  2. 给脚本加执行权限:
    chmod +x run_matlab_app.sh
    
  3. 用这个脚本启动MATLAB程序,Python代码在普通终端正常运行就行。

快速验证步骤

  1. 先在终端里检查当前环境变量状态:
    echo $DYLD_LIBRARY_PATH
    
    如果看到MATLAB的路径,要么重启终端,要么执行unset DYLD_LIBRARY_PATH清除该变量。
  2. 重新运行你的Pillow代码,看看是不是能正常执行了。

内容的提问来源于stack exchange,提问作者johnthagen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:45:59