问题描述
我正在尝试在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: No module named ‘keras’
我尝试使用pip3
安装keras
,但是得到了相同的结果。
我究竟做错了什么?有任何想法吗?
最佳方法
Diagnose
如果您安装了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
使用virtualenv
使用并污染您的system-wide 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
次佳方法
遇到相同的问题,假设您使用anaconda3,并且将venv
与>= python=3.6
结合使用:
python -m pip install keras
sudo python -m pip install --user tensorflow