导入tensorflow时报错:cannot import name 'abs'的解决

yipeiwu_com7年前Python基础

一,问题背景

作者在用tensorflow做实验时,import tensorflow忽然报错:cannot import name 'abs'。错误情况如下所示:

这个问题出现的比较新,网上暂时没有太多的讨论。

二,可能原因

对于这个问题,讨论最多的在github上,附上链接:https://github.com/tensorflow/tensorflow/issues/20778

提问者也是遇到了同样的问题:

tensorflow官方暂时将这个问题标记为了“待回应”。

有网友指出该问题的产生原因可能为:

1.需要正确版本的protobuf

2.可能是_impl路径的问题

3.可能与python的版本有关

4.这个bug几乎只有在windows下出现,目前针对该问题,官方还未给出具体原因和解决方法

三,解决办法

有人尝试更新protobuf,重新安装tensorflow,但是问题仍旧存在:

后续有人给出了解决办法,经测试,下面这种方法能解决这个问题:

解决方法:

1. 运行tensorflow,此时会报错,按后面的步骤继续做

2. 删除tensorflow文件夹

3. 卸载tensorflow后再重新安装即可解决问题

总的来说,执行这些步骤后,可成功导入tensorflow:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python编程实现归并排序

python编程实现归并排序

因为上个星期leetcode的一道题(Median of Two Sorted Arrays)所以想仔细了解一下归并排序的实现。 还是先阐述一下排序思路: 首先归并排序使用了二分法,归根...

Python函数返回值实例分析

本文实例讲述了Python的函数返回值用法。分享给大家供大家参考。具体分析如下: 最近学一些Python的基本用法,看到定义函数,发现似乎只能返回一个返回值,想想matlab里返回多个返...

Python调用ctypes使用C函数printf的方法

在Python程序中导入ctypes模块,载入动态链接库。动态链接库有三种:cdll以及windows下的windll和oledll,cdll载入导出函数使用标准的cdecl调用规范的库...

Python3 实现减少可调用对象的参数个数

问题 一个被其他python代码使用的callable对象,可能是一个回调函数或者是一个处理器,由于其参数太多,导致调用时出错。 解决方案 如果需要减少某个函数的参数个数,可以使用fun...

Python3正则匹配re.split,re.finditer及re.findall函数用法详解

本文实例讲述了Python3正则匹配re.split,re.finditer及re.findall函数用法。分享给大家供大家参考,具体如下: re.split re.finditer r...