安装后无法导入keras

Posted

技术标签:

【中文标题】安装后无法导入keras【英文标题】:Cannot import keras after installation 【发布时间】:2017-02-17 06:17:43 【问题描述】:

我正在尝试在 Ubuntu 16.04 LTS 上为 Python3.5 设置 keras 深度学习库,并使用 Tensorflow 作为后端。我安装了Python2.7Python3.5。我已经安装了Anaconda 并在它的帮助下Tensorflownumpyscipypyyaml。之后我用命令安装了keras

sudo python setup.py install

虽然我可以看到/usr/local/lib/python3.5/dist-packages/Keras-1.1.0-py3.5.egg 目录,但我不能使用keras 库。当我尝试在 python 中导入它时,它会说

ImportError: 没有名为“keras”的模块

我尝试使用pip3 安装keras,但得到了相同的结果。

我做错了什么?有什么想法吗?

【问题讨论】:

【参考方案1】:

诊断

如果您安装了pip(在使用 Python 3.5 之前应该已经安装),请列出已安装的 Python 包,如下所示:

$ pip list | grep -i keras
Keras (1.1.0)

如果没有看到Keras,说明之前的安装失败或者不完整(这个lib有这个依赖:numpy(1.11.2),PyYAML(3.12),scipy(0.18.1),六(1.10 .0) 和 Theano (0.8.2)。)

咨询pip.log,看看有什么问题。

您还可以像这样显示您的 Python 路径:

$ python3 -c 'import sys, pprint; pprint.pprint(sys.path)'
['',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']

确保 Keras 库出现在 /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages 路径中(在 Ubuntu 上路径不同)。

如果没有,请尝试卸载它,然后重试安装:

$ pip uninstall Keras

使用虚拟环境

使用和污染系统范围的 Python 是个坏主意。我建议使用 virtualenv(参见 guide)。

最好的用法是创建一个virtualenv 目录(例如在您的家中),并将您的 virtualenvs 存储在:

cd virtualenv/
virtualenv -p python3.5 py-keras
source py-keras/bin/activate
pip install -q -U pip setuptools wheel

然后安装 Keras:

pip install keras

你得到:

$ pip list
Keras (1.1.0)
numpy (1.11.2)
pip (8.1.2)
PyYAML (3.12)
scipy (0.18.1)
setuptools (28.3.0)
six (1.10.0)
Theano (0.8.2)
wheel (0.30.0a0)

但是,您还需要安装额外的库,例如 Tensorflow:

$ python -c "import keras"
Using TensorFlow backend.
Traceback (most recent call last):
  ...
ImportError: No module named 'tensorflow'

TesnsorFlow 的安装指南在这里:https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html#pip-installation

【讨论】:

使用虚拟环境解决了这个问题!在系统范围内安装库可能会破坏一些东西。谢谢! 我运行了 pip list 并显示了 Keras (1.2.2),但是当我运行 python -c "import Keras" 时,我仍然得到 "ImportError: No module named Keras"【参考方案2】:

pip 默认指向 pip3,这让我下载了 python3 的库。相反,我以python(打开了python 2)的身份启动了shell,并且库显然没有安装在那里。

一旦我匹配了 pip3 -> python3、pip -> python (2) 的名称,所有这些都可以工作。

【讨论】:

我认为这是我的问题,因为我使用的是 python3 并重新安装了 2.7,因为这是我的班级使用的。在将 pip 用于 3 之后,我将如何更改 pip 以与 2.7 一起使用? (抱歉迟到了)。理想情况下,如果您卸载 python2 + python3 并删除 pip-modules 2/3 的文件夹(./usr/local/lib/python2.7 + python3.5 和/或 ~/.local/lib/python2.7 + python3 .5) 你应该用sudo apt-get install python python-pip python3 python3-pip 安装东西。此时,您使用pip install... 安装的任何内容都将转到/../lib/python2.7,并在您使用python(2.7) 启动控制台时导入。无论您使用pip3 install ... 安装什么,都将转到/../lib/python3.5,并且可以使用python3 控制台导入【参考方案3】:

遇到同样的问题,假设您使用 anaconda3 并且您使用 venv>= python=3.6

python -m pip install keras
sudo python -m pip install --user tensorflow

【讨论】:

【参考方案4】:

首先通过以下方式检查已安装的 Python 包列表:

点子列表 | grep -i keras

如果显示了 keras,则通过以下方式安装:

pip install keras --upgrade --log ./pip-keras.log

现在检查日志,如果存在任何未决依赖项,它将影响您的安装。所以删除依赖项,然后再次安装它。

【讨论】:

以上是关于安装后无法导入keras的主要内容,如果未能解决你的问题,请参考以下文章

jupyter notebook 无法导入keras

Keras:“运行时错误:导入 pydot 失败。”安装 graphviz 和 pydot 后

ImportError:无法从“keras.models”导入名称“Sequential”

Keras - ImportError:无法导入名称'CuDNNLSTM'

AttributeError:无法导入 keras 和分割模型

tensorflow.keras.layers:ImportError:无法导入名称“CuDNNLSTM”