属性错误:模块“tensorflow.python.training.checkpointable”没有属性“CheckpointableBase”。

5

我一直在学习人工智能和如何使用Python编写代码。我正在进行一个项目,决定更新一些Python包,但出现了问题,无法编译我的代码。我删除了Anaconda3并重新安装,但仍然无法解决问题。我遇到了这个问题,希望有人能帮助我,非常感谢。

>>> import tensorflow as tf
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\__init__.py", line 63, in <module>
    from tensorflow.python.framework.framework_lib import *  # pylint: disable=redefined-builtin
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\framework\framework_lib.py", line 104, in <module>
    from tensorflow.python.framework.importer import import_graph_def
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\framework\importer.py", line 32, in <module>
    from tensorflow.python.framework import function
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\framework\function.py", line 36, in <module>
    from tensorflow.python.ops import resource_variable_ops
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\ops\resource_variable_ops.py", line 35, in <module>
    from tensorflow.python.ops import variables
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\ops\variables.py", line 40, in <module>
    class Variable(checkpointable.CheckpointableBase):
AttributeError: module 'tensorflow.python.training.checkpointable' has no attribute 'CheckpointableBase'

如果你在shell中导入tensorflow,它能正常工作吗? - Sushant
你使用的是哪个操作系统? - Ekaba Bisong
@EkabaBisong Windows 10,64位 - Ali Galip
3个回答

3

相同的问题已经发布为GitHub问题。特别是,由@allanlavoie建议的解决方案在这里也可能相关:

听起来像是TensorFlow的半更新版本。您可以尝试完全删除TensorFlow(例如,pip uninstall tf-nightly或已安装的任何软件包),确保import tensorflow失败,然后重新安装吗?

由于您的问题明显表明您正在使用Anaconda管理Python环境,如果上述方法无法解决您的问题,则可以尝试在干净的conda环境中安装TensorFlow,如下所示:

  1. 通过conda create --name tftest创建一个新的环境。(你可以用你当前项目的名字替换tftest。)
  2. 通过activate tftest(或者source activate tftest如果你使用的是MSYS2的bash,或者类似的东西)激活这个新的环境。
  3. 通过conda install tensorflow在这个环境中安装TF。
  4. 通过where python确保你在正确的环境中(它应该生成一个包含"tftest"的路径)。
  5. 通过python运行Python。
  6. 在该环境的shell中import tensorflow as tf

由于你正在使用PyCharm(参见此答案的评论),因此你将想要设置PyCharm以使用这个新的环境。实际上,为每个项目使用一个新的环境虽然占用磁盘空间,但是对于这些相当依赖性强的数值包来说,避免依赖问题是一个好方法。


很遗憾,它仍然没有起作用。顺便说一下,我没有成功运行“pip uninstall tf-nightly”。我使用了tensorflow.org上的说明,但仍然没有起作用。毕竟还是遇到了同样的问题。我还在寻找答案,伙计们。 - Ali Galip
1
@AliGalip:如果你通过 conda create --name tftest 创建了一个新的环境,然后通过 activate tftest 激活它,接着通过 conda install tensorflow 安装了 TensorFlow,再通过 where python 确认你在正确的环境中,最后在该环境的 shell 中运行 Python 并且执行 import tensorflor as tf,会发生什么? - fuglede
1
成功了!!我需要为那些可能遇到和我一样错误的人添加一些东西。按照@fuglede有序写的所有指示。完成后,我打开了Pycharm社区版,但又出现了错误。在完成上述操作后,您需要在Pycharm中打开设置并重新配置解释器(添加本地:Anaconda/envs/tftest/python.exe)。然后,当我尝试编译我的代码时,我又遇到了两个错误。您需要从Pycharm的设置/项目解释器中获取“nose”和“matplotlib”软件包,然后它就可以工作了!再次感谢@fuglede! - Ali Galip
@AliGalip:太好了,很高兴听到这个消息;让我把我的意见和你的意见一起添加到答案中,以便于参考。与数值计算相关的软件包非常庞大且具有复杂的相互依赖关系,因此您可能会发现,围绕每次启动新项目创建一个新环境的工作流程非常有用。这还有一个额外的好处,可以加快PyCharm运行的臭名昭著的“索引软件包”过程。 - fuglede

0
这个错误可能是由于Tensorflow版本不兼容导致的,您的代码与最新版本的Tensorflow不兼容。尝试安装较旧版本的Tensorflow,例如1.14.0或1.7.0,这对我有效。

0
pip3 uninstall tensorflow

然后:

pip3 install --upgrade "tensorflow==1.15"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接