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

M1 Mac下PyCharm中Matplotlib架构不兼容报错求助

M1 Mac PyCharm中Matplotlib架构不兼容问题解决

问题描述

在M1 Mac的PyCharm中运行读取MiniSEED文件并绘制地震波形的代码时,触发ImportError:matplotlib的_c_internal_utils.cpython-311-darwin.so文件为arm64架构,但当前环境需要x86_64架构。尝试安装ARM64版本Matplotlib后,不确定文件结构是否正确,也不清楚PyCharm能否识别。另外,命令行pip show显示Matplotlib 3.7.1位于anaconda3目录,而PyCharm的Python解释器版本为3.7.2。

环境信息

  • OSX Ventura 13.1
  • PyCharm社区版2022.2.5(x86_64架构JVM)

运行代码

from obspy import read
import matplotlib.pyplot as plt

# 读取MiniSEED文件
st = read('/Users/petertsirushkin/Downloads/OO.HYS14..HDH.2020.092.00.00.00.000-2020.093.00.00.00.000.miniseed')

trace = st[0]
times = trace.times()
amplitudes = trace.data

# 绘制波形图
plt.plot(times, amplitudes)
plt.xlabel('时间 (s)')
plt.ylabel('振幅')
plt.title('地震波形')
plt.show()

报错信息

ImportError: dlopen(/Users/petertsirushkin/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/matplotlib/_c_internal_utils.cpython-311-darwin.so, 0x0002): tried: '/Users/petertsirushkin/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/matplotlib/_c_internal_utils.cpython-311-darwin.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/petertsirushkin/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/matplotlib/_c_internal_utils.cpython-311-darwin.so' (no such file), '/Users/petertsirushkin/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/matplotlib/_c_internal_utils.cpython-311-darwin.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

问题根源

PyCharm使用的是x86_64架构JVM,默认通过Rosetta 2运行,会强制调用x86_64模式的Python解释器,但你安装的Matplotlib是arm64架构,两者架构不匹配导致报错。同时PyCharm配置的解释器版本与命令行环境不一致,加剧了环境混乱。

解决步骤

1. 统一环境架构

方案A:继续使用x86_64环境

  • 在PyCharm中配置基于x86_64的Python解释器(比如通过Rosetta 2启动的Anaconda环境)。
  • 激活该环境后,重新安装Matplotlib:
    conda activate your_x86_env
    pip uninstall matplotlib
    pip install matplotlib
    

方案B:切换到arm64原生环境

  • 安装支持arm64架构的PyCharm版本(2023.1及以上版本已原生支持arm64)。
  • 配置arm64架构的Python解释器(如原生Anaconda或Homebrew安装的Python),确保Matplotlib为arm64版本。

2. 对齐PyCharm与命令行的Python环境

在PyCharm的File > Settings > Project: xxx > Python Interpreter中,选择命令行pip show matplotlib显示的anaconda3目录下的Python解释器,消除环境版本差异。

3. 验证架构匹配

在PyCharm终端执行以下命令,确认Python与Matplotlib架构一致:

# 检查Python架构
python -c "import platform; print(platform.machine())"
# 检查Matplotlib的.so文件架构
lipo -info /Users/petertsirushkin/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/matplotlib/_c_internal_utils.cpython-311-darwin.so

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:08:13