如何修复';没有名为';tensorflow.contrib';对于python项目?

如何修复';没有名为';tensorflow.contrib';对于python项目?,tensorflow,Tensorflow,我在github中发现了一个聊天机器人程序,并希望运行该程序以更好地理解它。但每次我试着运行这个程序,它都会说 没有名为“tensorflow.contrib”的模块 我应该怎么做来修复这个错误?由其他专家解释:这是一个有趣的发现,我希望这能帮助在Anaconda或类似集成环境下开发的其他人,在这些环境中,您的程序不是直接从命令行运行的,例如“python myprogram.py” 问题可能是由于程序本身名为tensorflow.py。它在一个环境中运行,在这个环境中,它不是作为“主”模块启动

我在github中发现了一个聊天机器人程序,并希望运行该程序以更好地理解它。但每次我试着运行这个程序,它都会说

没有名为“tensorflow.contrib”的模块


我应该怎么做来修复这个错误?

由其他专家解释:这是一个有趣的发现,我希望这能帮助在Anaconda或类似集成环境下开发的其他人,在这些环境中,您的程序不是直接从命令行运行的,例如“python myprogram.py”

问题可能是由于程序本身名为tensorflow.py。它在一个环境中运行,在这个环境中,它不是作为“主”模块启动的,而是由另一个Python程序(本例中是anaconda)加载的

以这种方式加载python程序时,解释器将其作为模块读取并将其放入模块列表中(与文件同名),因此现在有sys.modules[“tensorflow”]指向加载的用户程序(而不是已安装的tensorflow模块)。当遇到“import tensorflow as tf”行时,Python会看到“tensorflow”已经被导入,只需执行tf=sys.modules[“tensorflow”],这是对您自己的tensorflow.py的引用(这已经是一个问题,但您不必启用tf.eager\u execution()然而,如果您这样做了,它将失败,因为您的tensorflow.py没有这样的函数)

现在,有趣的部分是:

import tensorflow.contrib.eager as tfe
Python已经导入了“tensorflow”(您的模块!),因此它希望在加载的tensorflow.py所在的目录中找到任何子模块。特别是,它希望该目录是一个Python包(其中包含init.py),但显然不是,因此出现了“…不是包”错误消息。

tf.contrib.data已被删除
尝试降级tensorflow版本:

pip3安装tensorflow==1.14


用于在单机上安装多个tensorflow版本

您找到的代码可能是用tensorflow 1.x编写的,但您已经安装了tensorflow 2.x。可使用兼容性模块,而不是降级TensorFlow:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

来源:

可能您正试图在Windows上运行它,请尝试在您的终端上运行它:

pip安装cloudbiolinux==0.3a

pip安装帮助程序

pip安装控制器


我试图用这个问题中提供的答案修复可能的重复,但根本不起作用。plz,help.tf.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。