如何正确不使用pip安装TensorFlow?并解决安装后出现的AttributeError报错问题
解决TensorFlow
float32 属性错误及手动安装的正确方式 先说说你遇到的报错根源
你看到的 AttributeError: module 'tensorflow' has no attribute 'float32' 本质是环境混乱导致的:
- 你卸载了通过pip安装的TensorFlow,但没有重新安装,而之前残留的
object_detection模块(在site-packages里)仍然试图调用TensorFlow的API,此时环境里要么完全没有TF,要么是残留的损坏文件; - 另外,你只把models-master放到项目目录,但它是TensorFlow的工具库依赖,不是TensorFlow本体,没法替代TF的安装。
你的操作失误点
你混淆了「TensorFlow本体」和「TensorFlow Models工具库」:models-master里的object_detection是基于TensorFlow开发的检测框架,必须依赖安装好的TensorFlow才能运行,单纯把它放到项目目录没用,而且之前site-packages里的旧object_detection还在干扰你的代码。
一步步解决问题
1. 彻底清理混乱的环境
先把残留的TF和相关包清干净:
- 打开命令行,检查当前环境里的相关包:
pip list | findstr tensorflow pip list | findstr object-detection - 卸载所有残留的相关包:
pip uninstall -y tensorflow tf-object-detection-api - 手动删除site-packages里的残留文件夹:找到你的Python路径
C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages,删掉所有名为tensorflow、object_detection的文件夹。
2. 重新安装匹配版本的TensorFlow
你的代码是针对TF1.15写的,直接用pip装回这个版本(Python3.6完全兼容):
pip install tensorflow==1.15
3. 正确配置models-master(object_detection)
models-master不能随便丢在项目目录,得让Python能识别到它:
- 把解压后的models-master放到一个固定路径,比如
C:\Users\user\Desktop\models-master; - 添加环境变量:
- 临时生效(每次开命令行都要跑):
set PYTHONPATH=C:\Users\user\Desktop\models-master\research;C:\Users\user\Desktop\models-master\research\slim;%PYTHONPATH% - 永久生效(Windows):右键「此电脑」→属性→高级系统设置→环境变量→新建系统变量,变量名
PYTHONPATH,值填上面两个路径(用分号分隔);
- 临时生效(每次开命令行都要跑):
- 重新执行protoc编译(确保所有proto文件转成Python代码):
进入models-master\research目录,运行:protoc object_detection/protos/*.proto --python_out=.
4. 测试运行
回到你的项目目录,重新运行main_.py,应该就能正常加载模块了。
关于「不使用pip安装TensorFlow」的正确方式
其实非常不推荐手动安装,因为TF依赖大量底层库(CUDA、cuDNN、各种Python包),手动安装很容易出现依赖缺失、版本不匹配的问题。如果一定要尝试:
- 从TensorFlow GitHub仓库下载对应版本的源码(比如1.15分支);
- 找到该版本的
requirements.txt,手动用pip安装所有依赖包; - 配置编译环境(比如Windows需要MSVC、Bazel),编译TensorFlow源码;
- 把编译好的TF包添加到Python的环境变量中。
但对于绝大多数开发者来说,用pip安装是最简单、最可靠的方式,没必要折腾手动安装。
内容的提问来源于stack exchange,提问作者user14972645
相关产品推荐
相关产品推荐

