Windows11非Anaconda环境下导入TensorFlow报错的解决请求
问题背景
Windows 11系统,未使用Anaconda,多次重装Python版本搭建TensorFlow环境,导入tensorflow时出现模块导入级联错误,排查报错相关文件后无法定位问题。
运行代码
import pandas as pd data = pd.read_csv('gpascore.csv') blank = data.isnull().sum() blank_keys = blank.keys() for i in range(len(blank_keys)): if blank[blank_keys[i]] > 0: data = data.dropna() break admit = data.admit.values del data['admit'] dataset = [] for i, rows in data.iterrows(): temp = [rows['gre'], rows['gpa'], rows['rank']] dataset.append(temp) import numpy as np import tensorflow as tf from tensorflow import keras model = tf.keras.models.Sequential([ tf.keras.layers.Dense(64, activation='tanh'), tf.keras.layers.Dense(128, activation='tanh'), tf.keras.layers.Dense(1, activation='sigmoid'), ]) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.fit(np.array(dataset), np.array(admit), epochs=1000) predict = model.predict([[750, 3.70, 3], [400, 2.20, 1]]) print(predict)
报错信息
Traceback (most recent call last): File "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python311\\app.py", line 18, in <module> import tensorflow as tf File "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\tensorflow\__init__.py", line 48, in <module> from tensorflow._api.v2 import __internal__ File "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\tensorflow_api\\v2_internal_\__init__.py", line 8, in <module> from tensorflow._api.v2.__internal__ import autograph File "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\tensorflow_api\\v2_internal_\\autograph\__init__.py", line 8, in <module> from tensorflow.python.autograph.core.ag_ctx import control_status_ctx # line: 34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\tensorflow\\python\\autograph\__init__.py", line 57, in <module> remove_undocumented(__name__, _allowed_symbols) File "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\tensorflow\\python\\util\\all_util.py", line 99, in remove_undocumented should_have = make_all(module_name, doc_string_modules) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\tensorflow\\python\\util\\all_util.py", line 51, in make_all for m in _reference_pattern.finditer(doc_module.__doc__) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: expected string or bytes-like object, got 'NoneType'
解决方案
从报错信息判断,这是TensorFlow安装文件损坏或版本与Python不兼容导致的问题,按以下步骤操作:
完全清理TensorFlow残留
打开命令提示符,执行pip uninstall tensorflow -y卸载现有版本,然后手动删除Python安装目录下Lib\site-packages中所有带tensorflow、tensorflow_core、tensorflow_api的文件夹,避免残留文件干扰。匹配Python与TensorFlow版本
执行python --version查看当前Python版本,严格按照兼容表选择对应TensorFlow版本:比如Python 3.11需TensorFlow 2.13及以上,Python 3.10对应TensorFlow 2.10+,版本不匹配会引发各类导入错误。重新安装TensorFlow
先升级pip:python -m pip install --upgrade pip,再安装指定版本,比如pip install tensorflow==2.15.0(根据你的Python版本调整);若安装缓慢,可加国内镜像源:pip install tensorflow==2.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple验证安装
新建空白Python文件,仅执行import tensorflow as tf,无报错则安装成功,再运行完整代码测试。
内容的提问来源于stack exchange,提问作者황영민

