导入 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-py
pip3 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”的模块