导入 tensorflow 时没有名为“absl”的模块错误

Posted

技术标签:

【中文标题】导入 tensorflow 时没有名为“absl”的模块错误【英文标题】:No module named 'absl' error when I import tensorflow 【发布时间】:2018-07-07 11:58:54 【问题描述】:

我在装有 GTX1070 的 Win 7 机器上安装了 anaconda。

过去一小时我一直在尝试安装 tensorflow gpu 版本,但没有成功。我按照 tensorflow website 上的教程没有成功。他们要求你安装我做的 CUDA 8.0 和 Cudll 6.0。然后我将 cudnn64_6.dll、cudart64_80.dll 和 libnvvp 文件夹的位置添加到我的路径变量中。然后我在 conda 中设置了一个虚拟环境并运行以下命令:

(tensorflow)C:> pip install --ignore-installed --upgrade tensorflow-gpu 

我相信当我这样做时,它会安装似乎需要 CUDA 工具 9.0 的 tensorflow 1.5,因为我收到一条错误消息,提示找不到 cudart64_80.dll。所以我将我的 CUDA 工具更新到 9.0 并下载相应的 Cuda 库。然后我改变我的路径变量。现在我没有收到任何丢失的 dll 错误,但是我现在面临以下错误

ModuleNotFoundError: No module named 'absl'

有人对我以后可以做什么有任何建议吗?

【问题讨论】:

事实上,tensorflow的pip包描述符明确需要absl-py >= 0.1.6(至少在当前master上见this link。你能启动一个交互式python会话并尝试import absl吗?如果是这样不行,能不能像安装tensorflow一样用pip手动安装py-absl pip install absl-py 为我工作 你找到解决办法了吗? @CharlieParker 将以下路径添加到您的环境变量中; c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64 pip install absl-py 也为我工作。 【参考方案1】:

这已经很晚了,但仍然值得发布。他们在 NVidia 网站上没有告诉您的是,您还需要向环境变量添加一条路径。路径是;

c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64

它可能与您的安装不完全相同,因为它取决于您安装 CUDA 工具的位置。

您也可以只使用 pip 安装 TF GPU 版本,但 pip 安装的是相当旧的 TF 1.1。

【讨论】:

【参考方案2】:

可以使用Anaconda GUI安装absl-py包解决问题:

选择uninstall 列并搜索absl-py 以应用它。

【讨论】:

【参考方案3】:

对我来说,“pip3 install absl-py”不起作用:

我在尝试导入 tensorflow 时收到:“ModuleNotFoundError: No module named 'absl'”:

导入张量流 回溯(最近一次通话最后): 文件“”,第 1 行,在 文件“/opt/anaconda3/lib/python3.6/site-packages/tensorflow/init.py”,第 22 行,在 from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import 文件“/opt/anaconda3/lib/python3.6/site-packages/tensorflow/python/init.py”,第 63 行,在 from tensorflow.python.framework.framework_lib import * # pylint: disable=redefined-builtin 文件“/opt/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/framework_lib.py”,第 25 行,在 从 tensorflow.python.framework.ops 导入图 文件“/opt/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py”,第 55 行,在 从 tensorflow.python.platform 导入应用程序 文件“/opt/anaconda3/lib/python3.6/site-packages/tensorflow/python/platform/app.py”,第 24 行,在 从 tensorflow.python.platform 导入标志 文件“/opt/anaconda3/lib/python3.6/site-packages/tensorflow/python/platform/flags.py”,第 25 行,在 from absl.flags import * # pylint: disable=wildcard-import ModuleNotFoundError: 没有名为“absl”的模块

但如果我从头开始编译 absl-py,一切都会顺利:

jk@D17:~/py/004/abseil-py-master$ python setup.py install

运行安装

运行 bdist_egg 运行 egg_info

.......

使用 /opt/anaconda3/lib/python3.6/site-packages

完成处理absl-py==0.4.0的依赖

然后:

导入张量流

没问题

【讨论】:

【参考方案4】:

这对我来说是由 Python 版本问题引起的。我的 Python 2.x 上安装了 absl 包,但我的 Python 3.x 没有。所以我只是确保我机器上的两个 Python 都安装了包:

pip install absl-pypip3 install absl-py

【讨论】:

不要使用sudo pip install【参考方案5】:

我遇到了同样的问题,并且 pip(或 pip3)安装 absl-py 无法正常工作。

python --version 显示我使用了错误的 python 版本 (2.7)。于是我把python版本改成了3.5(https://askubuntu.com/questions/320996/how-to-make-python-program-command-execute-python-3)

这对我有用。

【讨论】:

【参考方案6】:

在你的 site-packages 文件夹中找到 absl-py 相关文件夹并将其删除。尝试重新安装 pip3 install absl-py。我是这样解决的,希望对你有用。

【讨论】:

【参考方案7】:

尝试另一个版本的absl-py。我的默认 absl 版本是 0.8.1,python 是 3.6:

$pip install absl-py==0.8.0

为我工作。

或者将我的环境python版本改为3.7也可以。

【讨论】:

【参考方案8】:

试试:

conda install tensorflow
conda install -c anaconda absl-py

这对我有用。

欲了解更多信息,请参阅:https://anaconda.org/anaconda/absl-py

【讨论】:

【参考方案9】:

这就是我最终解决它的方法。

即使 absl-py 已经安装,我仍然收到错误消息。

当我使用pip install absl-py 时出现以下错误:

Requirement already satisfied: absl-py in c:\users\stack\appdata\local\programs\python\python38\lib\site-packages (0.9.0)
Requirement already satisfied: six in c:\users\stack\appdata\local\programs\python\python38\lib\site-packages (from absl-py) (1.15.0)

我通过重新安装修复它,即使用:

pip uninstall absl-py
pip install absl-py

然后我在使用 wrapt 时遇到了类似的错误: ModuleNotFoundError: No module named 'wrapt'

通过卸载然后重新安装修复了wrapt

pip uninstall wrapt
pip install wrapt

【讨论】:

我遇到了这个问题。卸载和重新安装没有帮助。最终我注意到我的 $PATH 指向了 2 个不同版本的 python。我猜这导致即使安装了模块也找不到模块。我卸载了一个版本并将其从我的 PATH 中删除,之后一切正常。希望这对某人有帮助!【参考方案10】:

如果您使用 Anaconda,请确保从 Home 安装 jupyter notebook。如果不是,您可以从 python CLI 导入它,但它会在导入 TensorFlow 时给出“No module named 'absl' error”

【讨论】:

【参考方案11】:

希望这可能对将来的某人有所帮助。我在安装/使用 tensorflow 以及扩展 absl python 包时遇到了类似的问题。有一些与纯 pip 安装有关的问题,所以我必须找到替代路线。

这是我遵循的过程。

下载并安装 miniconda:

wget https://repo.continuum.io/miniconda/Miniconda3-3.7.0-Linux-x86_64.sh -O ~/miniconda.sh
bash ~/miniconda.sh -b -p $HOME/miniconda

将 conda 添加到 PATH(可选):

export PATH="$HOME/miniconda/bin:$PATH"

激活 conda 环境:

source $HOME/miniconda/bin/activate

此时,您应该将 (base) 作为您的采购公寓环境。在此环境中执行以下操作:

conda create -n tensorflow python=3.7
activate tensorflow

请注意,此时您应该在 (tensorflow) 环境中工作。它将取代基础环境。它也是您运行 tensorflow 相关工作的环境(失败并将您带到这里)。


pip install --ignore-installed --upgrade tensorflow
pip install absl-py

此时您可能需要安装额外的依赖项,例如 numpy。

我的目标是能够运行 tensorflow 工具,这对我来说很有效。希望以后对其他人有用。

【讨论】:

以上是关于导入 tensorflow 时没有名为“absl”的模块错误的主要内容,如果未能解决你的问题,请参考以下文章

ModuleNotFoundError:尝试导入 tensorflow 模块时没有名为“tensorflow.python”的模块

ImportError:没有名为 absl.testing 的模块

Tensorflow 导入错误:没有名为“tensorflow”的模块

Tensorflow导入错误:没有名为'tensorflow'的模块

google absl.flags库替换操作实践教程

没有名为“tensorflow”的模块 jupyter notebook