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

Mac OS Sonoma系统下Matplotlib无法使用TeX的问题求助

解决方案

修复zlib版本冲突

  • 检查当前zlib版本信息,确认头文件与库的版本差异:
    port info zlib
    otool -L /opt/local/lib/libz.dylib
    
  • 卸载现有zlib并安装匹配的1.3.1版本:
    sudo port uninstall zlib
    sudo port install zlib @1.3.1
    
  • 重新编译Matplotlib,使其链接正确的zlib库:
    pip uninstall -y matplotlib
    pip install matplotlib --no-binary :all:
    

确保Matplotlib正确读取TeX环境变量

  • 验证Python进程能获取的TeX环境变量:
    python3 -c "import os; print(os.environ.get('TEXMFLOCAL')); print(os.environ.get('TEXMFHOME'))"
    
  • Sonoma默认使用zsh,将环境变量写入~/.zshrc(而非bash_profile)确保全局生效:
    echo 'export TEXMFLOCAL="/opt/local/share/texmf-texlive"' >> ~/.zshrc
    echo 'export TEXMFHOME="$HOME/Library/texmf"' >> ~/.zshrc
    source ~/.zshrc
    
  • 在Python代码中强制指定TeX路径,覆盖默认配置:
    import matplotlib.pyplot as plt
    plt.rcParams['tex.texpath'] = '/opt/local/share/texmf-texlive'
    plt.rcParams['text.latex.preamble'] = r'\usepackage{cmss}'
    

重建TeX文件名数据库

  • 刷新TeX的文件索引,确保dviread能检索到tfm文件:
    sudo mktexlsr /opt/local/share/texmf-texlive
    
  • 验证dviread的文件识别能力:
    1. 生成测试用dvi文件:创建test.tex,内容为
      \documentclass{article}
      \begin{document}
      Test Text
      \end{document}
      
    2. 编译生成dvi:
      latex test.tex
      
    3. 用Matplotlib的dviread测试:
      python3 -c "from matplotlib.dviread import Dvi; Dvi('test.dvi')"
      

修复MacPorts TeX Live配置

  • 重新安装texlive基础包,修复迁移后的路径关联问题:
    sudo port uninstall texlive-base
    sudo port install texlive-base
    
  • 确保MacPorts的TeX bin目录在PATH最前端,避免系统自带TeX干扰:
    echo 'export PATH="/opt/local/bin:/opt/local/sbin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:00:58