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

M1 Pro Mac的PyCharm中导入TensorFlow/Keras报错求助

问题场景

正在学习机器学习,尝试基于Kaggle任务搭建一个3输入1输出的单层网络,使用以下代码导入TensorFlow和Keras:

from tensorflow import keras
from tensorflow.keras import layers

# Create a network with 1 linear unit
model = keras.Sequential([
    layers.Dense(unit=1, input_shape=[3])
])

注:代码中unit为笔误,正确参数名应为units,但这并非当前报错的诱因。

运行代码后出现如下错误:

"/Users/ahmedhamadto/PycharmProjects/Deep Learning/venv/bin/python" "/Users/ahmedhamadto/PycharmProjects/Deep Learning/main.py"
Traceback (most recent call last):
  File "/Users/ahmedhamadto/PycharmProjects/Deep Learning/main.py", line 1, in <module>
    from tensorflow import keras
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tensorflow/__init__.py", line 37, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tensorflow/python/__init__.py", line 37, in <module>
    from tensorflow.python.eager import context
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tensorflow/python/eager/context.py", line 29, in <module>
    from tensorflow.core.framework import function_pb2
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tensorflow/core/framework/function_pb2.py", line 7, in <module>
    from google.protobuf import descriptor as _descriptor
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/google/protobuf/descriptor.py", line 47, in <module>
    from google.protobuf.pyext import _message
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/google/protobuf/pyext/_message.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace (__ZNK6google8protobuf10TextFormat21FastFieldValuePrinter19PrintMessageContentERKNS0_7MessageEiibPNS1_17BaseTextGeneratorE)

Process finished with exit code 1

设备为M1 Pro MacBook Pro。

解决方案

该错误源于M1芯片架构下TensorFlow与protobuf版本不兼容,或使用了非原生适配的安装方式,可按以下步骤解决:

  • 先卸载当前的TensorFlow和protobuf:
    pip uninstall tensorflow protobuf -y
    
  • 推荐用conda安装适配M1的TensorFlow(自动处理依赖兼容):
    1. 确保已安装支持ARM架构的Miniforge或M1版本Anaconda
    2. 创建并激活新环境:
      conda create -n tf_env python=3.9
      conda activate tf_env
      
    3. 安装TensorFlow相关包:
      conda install -c apple tensorflow-deps
      pip install tensorflow-macos tensorflow-metal
      
  • 若坚持用pip安装,需指定兼容M1的protobuf版本:
    pip install tensorflow-macos tensorflow-metal
    pip install protobuf==3.20.3
    
  • 验证安装:在Python环境中运行import tensorflow as tf,无报错则安装成功,之后修正代码中的unit为units即可重新运行网络代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:40:50