Anaconda启动Jupyter运行TensorFlow报dispatch属性不存在错误如何解决
问题说明
仅通过Anaconda Navigator启动Jupyter Notebook运行TensorFlow相关代码时,触发报错:AttributeError: module 'tensorflow.python.util.dispatch' has no attribute 'add_fallback_dispatch_list'。
已尝试执行pip install --upgrade tensorflow升级TensorFlow,报错未消除;相同代码在Colaboratory平台可正常运行。
触发报错的代码
import tensorflow as tf from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences from tensorflow.keras.layers import Input, Embedding, Bidirectional, LSTM, Dropout, Dense from tensorflow.keras.models import Model from tensorflow.keras.optimizers import RMSprop
报错截图

故障原因
- 直接执行裸
pip install --upgrade tensorflow时,大概率未激活Jupyter对应的conda虚拟环境,升级操作作用在其他Python环境上,Jupyter实际调用的环境中TensorFlow版本未更新,或存在旧版本残留。必须通过Jupyter实际使用的解释器调用pip安装,才能保证包装到正确的环境里。 - 当前环境中独立安装的Keras包与TensorFlow内置的Keras模块版本不匹配,存在调用冲突。
- Colab平台预装的TensorFlow、Keras为官方匹配版本,无环境冲突、包装错路径问题,因此代码可正常运行。
解决步骤
- 定位Jupyter实际使用的Python解释器:在Jupyter新建单元格执行以下代码,复制输出的解释器绝对路径
import sys print(sys.executable)
- 关闭当前运行的Jupyter,打开Anaconda Prompt,使用上一步拿到的解释器路径执行强制重装命令,将
{你的解释器路径}替换为实际输出的路径即可:
{你的解释器路径} -m pip install --upgrade --force-reinstall tensorflow
- 如果执行后仍报错,先彻底卸载当前环境下所有TensorFlow、Keras相关残留包,再重新安装:
{你的解释器路径} -m pip uninstall -y tensorflow tensorflow-cpu keras keras-nightly tf-estimator-nightly tensorflow-estimator {你的解释器路径} -m pip install tensorflow
- 重装完成后重启Anaconda Navigator,再启动Jupyter Notebook运行代码即可。
内容的提问来源于stack exchange,提问作者gracenz
相关产品推荐
相关产品推荐

