python 运行 tensorflow 时 对于 ImportError: cannot import name 'descriptor' 报错的解决-程序员宅基地

python 运行 tensorflow 时 对于 ImportError: cannot import name ‘descriptor’ 报错的解决

出现该报错的原因是 protobuf 库异常,对于直接运行如下代码是不行的:

pip install protobuf

原因是 直接下载的 protobuf 库与 tensorflow 是不匹配的,唯一的解决方法是卸载 protobuf 与 tensorflow , 并重新下载 tensorflow,此时下载 tensorflow 时会自动添加 protobuf 依赖。

注意在下载 tensorflow 时不能用本地的缓存包,否则不会添加依赖。

执行如下代码:

pip uninstall tensorflow
pip uninstall protobuf
# 这里一定要添加 --no-cache-dir 参数
# 我使用的版本是 2.1.0 ,大家在使用该语句时可以自行修改版本号
pip install --no-cache-dir tensorflow==2.1.0

从图片中可以看出,在下载时,就安装了 protobuf 依赖。
从嗯嗯

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40577941/article/details/105643225

智能推荐

c语言开发无人机自动驾驶仪,无人机自动驾驶仪.pdf-程序员宅基地

文章浏览阅读780次。无人机自动驾驶仪.pdf先进的多功能无人机自动驾驶仪 先进的多功能无人机自动驾驶仪 某 型 先 进 的 多 功 能 图 形 化 组 态 编 程 无 人 机 飞 行 控 制 系 统 ,非 常 适 合 用 户 根 据 个 性 化 需 求 进 行 二 次 开 发 和 功 能 扩 展 。它 集 飞 行 控 制 、数 据 采 集 、控 制 律 设 计 和 半 物 理 仿 真 四 大 功 能 于 一 体 ,适...

Java项目:校园人力人事资源管理系统(java+Springboot+ssm+mysql+jsp+maven)_学校人事管理系统设计代码-程序员宅基地

文章浏览阅读5k次,点赞18次,收藏71次。源码获取:博客首页 "资源" 里下载!校园人力资源管理系统:学校部门管理,教室管理,学历信息管理,职务,教师职称,奖励,学历,社会关系,工作经历,培训管理,公告等信息功能等等。部门控制层:@RequestMapping("/Department")@RestControllerpublic class DepartmentController { @Autowired IDepartmentService departmentServi..._学校人事管理系统设计代码

UWA报告使用小技巧,你get了吗?(第五弹)_uwa 使用-程序员宅基地

文章浏览阅读191次。动动手指,get新技能!_uwa 使用

机器学习学习笔记.day13_由第i个高斯混合成分生成且类别为j的概率-程序员宅基地

文章浏览阅读682次。周志华《机器学习》 学习笔记最近开始学习机器学习,参考书籍西瓜书,做点笔记。第十三章 半监督学习13.1 未标记样本让学习器不依赖外界交互、自动的利用未标记样本来提升学习性能,就是半监督学习;聚类假设:假设数据存在簇结构,同一个簇的样本属于同一个类别;流形假设:假设数据分布在一个流行结构上,邻近的样本拥有相似的输出值;半监督学习可进一步分为纯半监督学习和_由第i个高斯混合成分生成且类别为j的概率

fork创建进程过程(底层实现) 和 写实拷贝_fork系统调用创建新进程的过程和原理,写时拷贝-程序员宅基地

文章浏览阅读835次。linux系统中提供了三个系统调用可以创建新进程:clone()、fork()、vfork()。实际上,不管是我们比较熟悉的fork()还是剩下的两个在linux中都是通过clone()实现的。clone()是在c语言库中定义的一个封装函数,它负责建立进程堆栈并且调用对程序员隐藏的clone()系统调用。 进一步观察发现,linux内核中又是用do_fork()来处理这三个系统_fork系统调用创建新进程的过程和原理,写时拷贝

关于解决vivado error:add_1 must be in range [-1,DEPTH-1] 问题_vcs仿真时error:add_1 must be in range [-1,depth-1]-程序员宅基地

文章浏览阅读2.1k次。在仿真vivado fft ip 核时出现关于解决vivado error:add_1 must be in range [-1,DEPTH-1] 问题经查找资料与亲自实践得出如下结论1.拉高m_ tready,貌似不拉高也没有问题2.上电复位要给s_axis_config_tvalid和s_axis_config_tdata初始化,并配置一下..._vcs仿真时error:add_1 must be in range [-1,depth-1]

随便推点

Win7如何共享有线网络实现手机上网_win7怎么共享网络手机-程序员宅基地

文章浏览阅读4.1k次。使用win7自带的创建临时网络,是计算机到计算机的,所以不支持手机连接所以需要两个命令来实现netsh wlan set hostednetwork mode=allow ssid=你想建立的网络名字(英文格式) key=你想设置的密码(至少8位)回车再输入netsh wlan start hostednetwork按回车,激活这个无线网络。(这两条命令有先后顺序)_win7怎么共享网络手机

网络里面计算机这么解除权限,电脑上软件的权限怎么关闭-程序员宅基地

文章浏览阅读4.6k次。电脑上软件的权限怎么关闭今天给大家介绍一下电脑上软件的权限怎么关闭的具体操作步骤。1. 首先我们需要下载安装一个电脑管家的软件,请大家自行下载安装。2. 安装之后,打开电脑管家软件,进入主页面后,点击左侧的工具箱选项。3. 在打开的右侧页面,点击上方的搜索框,输入权限雷达下载,进行搜索4. 在结果中,打开权限雷达选项,在打开的窗口中,点击页面中的立即扫描选项5. 扫描之后,如图,我们就可以看到电脑..._电脑下载权限怎么解除?

matlab读取struct数据结构,matlab基本数据结构struct-程序员宅基地

文章浏览阅读7.2k次。一起来学演化计算-matlab基本数据结构struct觉得有用的话,欢迎一起讨论相互学习~Follow Me结构数组structMATLAB提供了两种定义结构的方式:直接应用和使用struct函数使用直接引用方式定义结构与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量xx.real = 0; % 创建字段名为real,并为该字段赋值为..._matlab struct 读取

北航课程中心不能登录解决办法(Error 500: No message found under code 'screen.welcome.digit.tip' for locale 'en_US')_welcome登录入口500-程序员宅基地

文章浏览阅读6.5k次。1.原因分析在登录北航课程中心的时候经常会出现这种错误:Error 500: No message found under code 'screen.welcome.digit.tip' for locale 'en_US'.根据错误提示,打开开发者工具(键盘 F12 键),在 Network 面板中发现发送的数据的头部信息(header) 中的 Accept-Langua_welcome登录入口500

摘录的一些Bjarne Stroustrup关于C++的谈话内容_bjrane stroustrup的书-程序员宅基地

文章浏览阅读5.8k次。1 专访 Bjarne Stroustrup2 C++ 热点问题一席谈3 C++0x 热点问题访谈4 C++0x 概览 专访 Bjarne Stroustrup 来源:荣耀 马皓明 译 作者:Bjarne Stroustrup 等级:一般 发布于2005-10-22 22:54 被读1091次 【字体:大 中 小】 _bjrane stroustrup的书

C#:图片的 粒子化 破碎效果_c# 粒子-程序员宅基地

文章浏览阅读1.5k次。0.之前是做java语言安卓开发,看到了图片的粒子化破碎效果,一直没时间好好研究。这次在c#语言中做窗体应用开发,终于研究出这个效果了。文章是借鉴Android的,不过原理都差不多。学习网址如下:https://www.jianshu.com/p/12184d8616461. 先看看图片的像素级操作的代码,很简单//初识//创建一个2X2的图片,每个像素占24位..._c# 粒子