安装后无法导入keras
Posted
技术标签:
【中文标题】安装后无法导入keras【英文标题】:Cannot import keras after installation 【发布时间】:2017-02-17 06:17:43 【问题描述】:我正在尝试在 Ubuntu 16.04 LTS 上为 Python3.5
设置 keras
深度学习库,并使用 Tensorflow
作为后端。我安装了Python2.7
和Python3.5
。我已经安装了Anaconda
并在它的帮助下Tensorflow
、numpy
、scipy
、pyyaml
。之后我用命令安装了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的主要内容,如果未能解决你的问题,请参考以下文章
Keras:“运行时错误:导入 pydot 失败。”安装 graphviz 和 pydot 后
ImportError:无法从“keras.models”导入名称“Sequential”
Keras - ImportError:无法导入名称'CuDNNLSTM'